You are tasked with improving the reliability of a large codebase. Using Jest, how would you approach writing tests for functions with side effects like database calls or API requests?

  • Use Jest's mocking capabilities to create mocks or spies for database and API calls.
  • Skip testing functions with side effects; focus on pure functions.
  • Manually perform database/API calls in tests to ensure real-world reliability.
  • Use only integration tests for functions with side effects.
To improve reliability and isolate side effects, you should use Jest's mocking capabilities to create mocks or spies for database and API calls. This way, you can control and verify the behavior of these calls without involving the actual database or API. The other options may lead to unreliable tests or skipped testing.

Why is input validation crucial in web development?

  • To ensure data is entered correctly.
  • To make web forms look more attractive.
  • To increase website loading speed.
  • To prevent SQL injection.
Input validation is crucial in web development to prevent security vulnerabilities like SQL injection and to ensure that the data entered by users is correct and safe. It helps protect against malicious input and maintain data integrity.

When a package is listed under devDependencies, it means that the package is only required during the ________ of the application.

  • development
  • deployment
  • testing
  • runtime
When a package is listed under devDependencies, it means that the package is only required during the development of the application. These are typically tools and libraries used for development, such as testing frameworks, build tools, and linters. They aren't needed in the production or deployment environment.

You are tasked with developing a function to flatten a nested array structure. Which method would you use to flatten the arrays efficiently?

  • Recursive function
  • Array.prototype.flatMap()
  • Nested loops
  • Array.prototype.concat()
To efficiently flatten a nested array structure, you can use Array.prototype.flatMap(). It not only flattens the array but also allows you to transform its elements if needed. Using recursion is an option but can lead to stack overflow errors for deeply nested arrays.

In which of the following template engines can you write plain JavaScript code inside special tags?

  • Mustache
  • Handlebars
  • Pug
  • EJS (Embedded JavaScript)
EJS (Embedded JavaScript) allows you to write plain JavaScript code inside special tags <% %> or <%= %>. This feature is useful for executing JavaScript logic and generating dynamic content within templates. Mustache, Handlebars, and Pug have their own template syntax and do not support this feature in the same way.

Which of the following Node.js modules would you typically use to handle file uploads?

  • fs
  • http
  • url
  • multer
In Node.js, to handle file uploads, you would typically use the multer module. multer is a middleware for handling multipart/form-data, which is the format used for file uploads. The other options (fs, http, and url) are commonly used for different purposes, such as working with files, creating HTTP servers, and parsing URLs, respectively.

The global object in Node.js is similar to the ______ object in client-side JavaScript.

  • window
  • document
  • navigator
  • console
In Node.js, the global object is similar to the window object in client-side JavaScript. It provides access to global variables and functions across the Node.js application.

When using template engines like EJS or Pug with Express.js, the ______ method is used to render a view template.

  • render
  • send
  • view
  • generate
In Express.js, the render method is used to render a view template when using template engines like EJS or Pug. It takes the name of the view and an optional data object as parameters. The other options are not typically used for rendering view templates.

How can you optimize Sequelize queries to avoid retrieving unnecessary data from the database?

  • Using the attributes option to specify only the required fields
  • Using findAll without any options
  • Using findOne for all queries
  • Using SELECT * for all queries
To optimize Sequelize queries, you can use the attributes option to specify only the fields you want to retrieve. Using findAll without options would retrieve all fields, which is inefficient. Using findOne is not suitable for all queries, and using SELECT * would retrieve all fields.

What is the primary use of the File System (fs) module in Node.js?

  • Manipulating and interacting with files and directories
  • Parsing JSON data
  • Creating web servers
  • Handling user input
The primary use of the File System (fs) module in Node.js is for manipulating and interacting with files and directories. It provides methods for reading, writing, updating, and deleting files, as well as working with directories.