When a JavaScript function is executed, a new execution context is created, and a special object called ________ is created.
- "this"
- "global"
- "function"
- "execution"
When a JavaScript function is executed, a new execution context is created, and a special object called the "execution context" is created. This execution context contains information about the function's variables and scope.
What is the significance of the HTTP status code in the response of an Express API, and how does it affect client-server interaction?
- HTTP status codes are optional and don't impact client-server interaction
- HTTP status codes indicate the type of response and guide client behavior
- HTTP status codes are primarily for server documentation
- HTTP status codes are used to encrypt the API response
HTTP status codes are essential in the response of an Express API. They indicate the type of response and guide client behavior. For example, a 200 OK status indicates success, while a 404 Not Found status indicates a resource was not found. Proper status codes enhance communication and handling between the client and server.
Connection to a NoSQL database like MongoDB in Node.js usually returns a ______ object.
- MongoClient
- Promise
- HttpServer
- Buffer
When connecting to a NoSQL database like MongoDB in Node.js, you typically get a MongoClient object. This object represents the database connection and allows you to perform various database operations. The other options are not related to MongoDB connections.
Which method should be used to handle the rejection of a Promise?
- reject()
- catch()
- error()
- failure()
To handle the rejection of a Promise, you should use the catch() method. It allows you to specify what to do when the Promise is rejected with an error. The other options are not standard methods for handling Promise rejection in JavaScript.
In the context of security, what does the principle of "least privilege" mean?
- Giving users the fewest privileges necessary to perform their tasks
- Giving users all possible privileges
- Giving administrators fewer privileges than regular users
- Giving privileges based on user seniority
The principle of "least privilege" means giving users the fewest privileges necessary to perform their tasks. This reduces the risk of unauthorized access and potential security breaches. The other options do not align with this security principle.
You are tasked with creating an HTTP proxy server using the http module. What steps and considerations would you take to handle incoming requests and forward them to the appropriate destination?
- Parse the incoming request, extract the destination URL, and create a new request to the destination server.
- Directly pass the incoming request to the destination server without any parsing.
- Block all incoming requests as proxy servers should only send responses.
- Use the 'fs' module to read and forward the request to the destination.
To create an HTTP proxy server, you should parse the incoming request, extract the destination URL, and create a new request to the destination server. The other options are not suitable for proxy server implementations.
To optimize the serving of static files in Express.js, enabling caching is a common practice.
- Compression
- Minification
- Preloading
- Caching
Enabling caching is a common practice in Express.js to optimize the serving of static files. Caching allows the server to store and reuse static files, reducing the need to fetch them from the disk or generate them on each request, thus improving performance.
How can you ensure that a specific version of npm is used in your Node.js project?
- By defining the npm version in the package.json file.
- By modifying the NODE_PATH environment variable.
- By running the 'npm use' command.
- By using a package manager like Yarn instead of npm.
You can ensure a specific version of npm is used in your Node.js project by defining the desired npm version in the engines field of your project's package.json file. This helps maintain consistency and ensures that others working on the project use the correct npm version.
You are developing a RESTful API using the http module and need to support CORS. How would you implement CORS headers to handle pre-flight requests in your HTTP server?
- Access-Control-Allow-Origin: *
- Access-Control-Allow-Origin: mydomain.com
- Access-Control-Allow-Origin: true
- Access-Control-Allow-Origin: false
To support CORS in your HTTP server, you should set the Access-Control-Allow-Origin header to the specific domain (e.g., mydomain.com) from which you want to allow requests. Using a wildcard (*) is less secure as it allows any domain, and using true or false is not the correct syntax for this header.
You are developing a media hosting platform where users can upload images and videos. How would you design the file storage and retrieval system to ensure high availability and low latency for users across the globe?
- Use a content delivery network (CDN) to cache and distribute media files to edge servers around the world.
- Store all media files on a single, centralized server to simplify management.
- Use a local file storage system for each region separately.
- Implement a peer-to-peer (P2P) system for users to share media directly.
To ensure high availability and low latency, using a CDN is the recommended approach. CDNs cache content on edge servers located across the globe, reducing the distance between users and the data they request. The other options may lead to latency issues and lower availability.