What considerations should be made when implementing full-text search to ensure relevance and accuracy of search results?
- Stemming and lemmatization
- Exact matching
- Case sensitivity
- Shortening query length
When implementing full-text search, considerations should include stemming and lemmatization to handle variations of words (e.g., "run," "running," "ran"). This ensures that search results are more comprehensive and relevant. Exact matching alone may miss variations. Case sensitivity should be considered based on user requirements. Shortening query length may lead to the exclusion of important search terms.
How can you extract route parameters in Express.js from a route URL like "/users/:userId"?
- Using req.params.userId
- Using req.query.userId
- Using req.body.userId
- Using req.param.userId
In Express.js, you can extract route parameters using req.params.userId. Route parameters are specified in the URL path with a colon prefix, and you can access them using req.params. The other options are not the correct way to access route parameters.
Using label with break or continue provides more control over which part of the code to ________ or ________ in JavaScript.
- skip, execute
- terminate, run
- jump, skip
- stop, resume
Using labels with break or continue in JavaScript provides more control over which part of the code to skip or execute. Labels allow you to specify which loop or block of code should be affected by break or continue statements when dealing with nested loops or complex control flow.
What would be the best way to handle errors in an Express application when building RESTful APIs?
- Using try...catch blocks in route handlers
- Sending 404 Not Found for all errors
- Using console.log() for error messages
- Not handling errors, let them crash the server
The best way to handle errors in an Express application when building RESTful APIs is to use try...catch blocks in route handlers. This allows you to catch errors and send appropriate HTTP responses with error details. Sending 404 Not Found for all errors is not a good practice, and letting errors crash the server is even worse. Console.log() is generally used for debugging but not for handling errors.
You are maintaining a library, and you need to release a new version that fixes a bug but also changes the behavior of an existing feature. How should you update the version number according to semantic versioning?
- 1.0.0
- 1.1.0
- 2.0.0
- 1.0.1
According to semantic versioning (SemVer), when you make backward-incompatible changes or breaking changes, you should increment the major version. In this scenario, since the behavior change affects existing users, you should update to version 2.0.0.
Which command is used to install a Node.js package globally?
- npm global install
- npm i -g
- npm install -g
- npm add -g
To install a Node.js package globally, you should use the npm install -g command. This makes the package available for use across different projects. The other options may not work as expected or are not the recommended way to install packages globally.
When implementing indexing, what factors should be considered to mitigate the impact on database write performance?
- Selective indexing
- Index maintenance strategy
- Using index-only scans
- Increasing index size
When implementing indexing, factors to consider for mitigating the impact on write performance include selective indexing (indexing only the columns that are frequently queried), choosing an appropriate index maintenance strategy (e.g., periodic maintenance rather than immediate updates), and using index-only scans to reduce disk I/O during reads. Increasing the index size can have a negative impact on write performance, so it should be done judiciously.
In Node.js, how can data be written to a writable stream?
- Using the read() method
- Using the write() method
- Using the pipe() method
- Using the readable() method
Data can be written to a writable stream in Node.js using the write() method. This method allows you to write data to the stream, which can be a file, network connection, or any other writable destination. The pipe() method is used for piping data from a readable stream to a writable stream, and the other options are not the correct ways to write data to a writable stream.
To perform an action once a Promise is settled, regardless of its outcome, you can use the .finally() method, which is called on the ________ of a Promise.
- rejection
- resolution
- completion
- termination
To perform an action once a Promise is settled, regardless of whether it's fulfilled or rejected, you can use the .finally() method. This method is called on the "completion" of a Promise. It's often used for cleanup operations.
You are tasked with implementing an authentication system for your Express API. What considerations should you make regarding security, user experience, and scalability when choosing an authentication strategy?
- Use JWT (JSON Web Tokens) with long expiration times.
- Store plain text passwords in the database.
- Implement OAuth 2.0 for social login only.
- Use basic authentication over HTTP.
Using JWT with long expiration times might seem like a convenient option for user experience, but it could pose a security risk. Storing plain text passwords is a severe security vulnerability. Implementing OAuth 2.0 for social login only might not be sufficient for all authentication needs. Using basic authentication over HTTP is not secure. A robust authentication strategy should consider security (option 1) without compromising user experience and