How can you set HTTP headers in the response object when using the http module?
- response.headers = {...}
- response.setHeader(name, value)
- response.setHeaders({...})
- response.addHeader(name, value)
To set HTTP headers in the response object when using the http module, you should use response.setHeader(name, value). This method allows you to set individual headers with their corresponding values. The other options are not valid methods for setting headers.
Which section in the package.json file specifies the entry point of a Node.js application?
- main
- start
- entry
- node
The main section in the package.json file specifies the entry point of a Node.js application. This is the JavaScript file that will be executed when you run your application using node. It is typically set to the main application file, e.g., index.js.
What is the primary difference between 'beforeEach' and 'beforeAll' hooks in Mocha?
- beforeEach runs once before all test cases, while beforeAll runs before each test case.
- beforeEach runs before each test case, while beforeAll runs once before all test cases.
- beforeEach runs after each test case, while beforeAll runs once before all test cases.
- beforeEach runs before each test case and has no equivalent to beforeAll.
In Mocha, the primary difference is that the beforeEach hook runs before each test case, ensuring a clean state for each test, while the beforeAll hook runs once before all test cases. This means that changes made in beforeEach won't persist between test cases, but changes in beforeAll will. The other options are incorrect regarding their behavior.
How do you ensure that your Express app is secure and defends against common web vulnerabilities?
- Not using any middleware
- Regularly updating Express to the latest version
- Implementing security middleware, validating user inputs, and using secure coding practices
- Hiding your server's IP address
To ensure that your Express app is secure and defends against common web vulnerabilities, you should implement security middleware, validate user inputs to prevent injection attacks, and follow secure coding practices to mitigate risks. Regularly updating Express is also essential for security.
You are developing a function that needs to merge two objects, with the second object overwriting the properties of the first one if there is a conflict. How would you achieve this?
- Object.assign()
- Object.merge()
- Object.combine()
- Object.extend()
To merge two objects with property conflicts, you can use the Object.assign() method. It takes one or more source objects and copies their properties to a target object. If properties with the same name exist in the target object, they will be overwritten by the source object's properties.
What is the significance of defining relationships between different entities in a database schema?
- Improving data integrity and consistency
- Reducing data retrieval time
- Simplifying query complexity
- Increasing storage efficiency
Defining relationships in a database schema is crucial for improving data integrity and consistency. Relationships help maintain referential integrity, ensuring that data remains accurate and reliable when related records are updated or deleted. While relationships can impact query complexity and storage, their primary purpose is to maintain data quality.
How can cache stampede be mitigated in high-traffic applications?
- By using a cache eviction policy
- By implementing cache sharding
- By adding more cache nodes
- By using cache warming techniques
Cache stampede in high-traffic applications can be mitigated by using cache warming techniques. Cache warming involves preloading the cache with frequently accessed data, reducing the likelihood of cache misses and stampedes during high traffic.
You are experiencing slow query performance on a large dataset with millions of records. How would you identify and optimize the slow-performing queries?
- Use an Object-Relational Mapping (ORM) library
- Implement pagination for query results
- Create proper database indexes
- Increase server RAM
To optimize slow-performing queries on a large dataset, creating proper database indexes is crucial. Indexes can significantly speed up query performance by allowing the database to quickly locate relevant data. Options A and B might help with other aspects but do not directly address query performance. Increasing server RAM may not always resolve query performance issues related to large datasets.
In what scenarios would using object mode in streams be appropriate in Node.js?
- When dealing with binary data
- When processing large text files
- When working with complex JavaScript objects
- When reading from a database
Using object mode in streams is appropriate when you want to work with complex JavaScript objects as chunks, rather than raw binary or text data. It allows you to pass objects between streams without serialization. The other options do not typically require object mode.
How does end-to-end (E2E) testing differ from integration testing in terms of scope?
- E2E testing focuses on testing the entire application flow, including user interfaces and interactions.
- Integration testing focuses on testing the interaction between individual components or modules of an application.
- E2E testing uses real data, while integration testing uses synthetic data.
- E2E testing is faster than integration testing.
End-to-end (E2E) testing examines the application's entire flow, including user interfaces and interactions. Integration testing, on the other hand, concentrates on testing how different components or modules work together within the application.