When connecting to a SQL database, what does the acronym CRUD stand for?

  • Create, Retrieve, Update, Delete
  • Connect, Retrieve, Utilize, Deploy
  • Configure, Render, Update, Distribute
  • Control, Receive, Use, Define
CRUD stands for Create, Retrieve, Update, Delete. These are the four fundamental operations for managing data in a SQL database. Create adds new records, Retrieve reads data, Update modifies existing records, and Delete removes records.

The Events module in Node.js extends the ______ class to allow the creation of event emitter instances.

  • 'EventEmitter'
  • 'Emitter'
  • 'Event'
  • 'Listener'
The Events module in Node.js extends the 'EventEmitter' class to allow the creation of event emitter instances. This class provides the functionality for registering event listeners and emitting events.

A JavaScript file that uses export is considered a ________.

  • Module
  • Package
  • Bundle
  • Dependency
A JavaScript file that uses the export keyword is considered a "module." Modules are used to encapsulate and export functionality that can be used in other parts of the code.

What is the primary purpose of the NPM registry in Node.js development?

  • To install Node.js itself
  • To manage global packages
  • To host and distribute Node.js packages and modules
  • To run JavaScript code
The primary purpose of the NPM (Node Package Manager) registry in Node.js development is to host and distribute Node.js packages and modules. It serves as a centralized repository for sharing and discovering reusable code, making it a crucial component of the Node.js ecosystem. Option 1 is incorrect because NPM is not used to install Node.js itself; you would use a Node.js installer for that. Option 2 is incorrect because NPM primarily manages packages on a project-specific level, not globally. Option 4 is incorrect because the NPM registry is not used to execute JavaScript code directly.

The Time-To-Live (TTL) value in caching determines how long the data should remain in the cache before being ______.

  • Refreshed
  • Expired
  • Serialized
  • Evicted
The Time-To-Live (TTL) value in caching determines how long the data should remain in the cache before being expired. When data expires, it is removed from the cache and, if needed, can be fetched again from the source.

What considerations need to be made for evolving schemas in distributed databases to ensure data consistency?

  • Distributed databases should never have evolving schemas
  • Schema changes should be applied simultaneously to all nodes
  • Schema changes should be applied sequentially with backward compatibility
  • Schema changes should be applied only to a single node
When evolving schemas in distributed databases, it's important to apply changes sequentially with backward compatibility. This means making changes in a way that allows both old and new versions of the schema to coexist temporarily, ensuring data consistency during the transition. Applying changes simultaneously or only to a single node can lead to data inconsistencies.

You are building a RESTful API with Express.js that will be consumed by various client applications, including mobile and web. How would you design the authentication and authorization mechanisms to ensure maximum security and flexibility?

  • Implement a single hard-coded API key for all clients
  • Use JWT (JSON Web Tokens) for authentication and fine-grained middleware for authorization
  • Allow anonymous access to all endpoints
  • Rely solely on client-side security mechanisms
To ensure maximum security and flexibility in a RESTful API, you should use JWT for authentication, as it allows for stateless authentication and can be used across different client types. Fine-grained middleware can be used for authorization, controlling access to specific endpoints. The other options are insecure or impractical approaches.

Closures, by preserving the scope chain at the time of their creation, enable the implementation of ________ patterns in JavaScript.

  • Design
  • Creational
  • Behavioral
  • Structural
Closures help implement Creational design patterns in JavaScript. These patterns deal with object creation mechanisms, and closures enable the preservation of state within functions, aiding in pattern implementation.

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.