| What is Node.js? |
Node.js is an open-source, cross-platform JavaScript runtime environment that allows you to run
JavaScript code on the server-side, outside of a browser.
|
| What is the purpose of Node.js? |
Node.js enables the development of scalable network applications using JavaScript, providing a unified
language for both frontend and backend development.
|
| What is npm? |
npm (Node Package Manager) is the default package manager for Node.js. It allows you to install, manage,
and share reusable code packages (called modules) for your applications.
|
| What is the event loop in Node.js? |
The event loop is a core concept in Node.js that handles asynchronous operations by continuously
processing the callback queue. It allows Node.js to perform non-blocking I/O operations despite using a
single-threaded architecture.
|
| What are Node.js modules? |
Modules are reusable pieces of code that can be imported and used in other Node.js files. They help to
organize and structure your code, enabling better maintainability and modularity.
|
| What is the difference between `process.nextTick()` and `setImmediate()` in Node.js? |
`process.nextTick()` schedules a callback function to be executed on the next iteration of the event
loop, while `setImmediate()` schedules the callback to be executed after the current event loop
iteration is completed. In most cases, `process.nextTick()` callbacks are executed before
`setImmediate()` callbacks.
|
| What is Express.js? |
Express.js is a popular web application framework for Node.js, designed for building web applications
and APIs. It simplifies the development process by providing a minimal and flexible layer that sits on
top of Node.js's built-in HTTP module.
|
| How can you handle errors in Node.js? |
Error handling in Node.js can be done using try-catch blocks for synchronous code, and callback
functions or Promises for asynchronous code. The best practice is to use async/await along with
try-catch for handling asynchronous errors, making the code more readable and easier to maintain.
|
| What is the difference between `exports` and `module.exports` in Node.js? |
`exports` is an object that is used to expose module functions or variables to other modules, while
`module.exports` is the actual object that gets exported from a module. By default, `exports` is an
alias of `module.exports`. However, if you want to export a single function or value, you should use
`module.exports` directly.
|
| What are the differences between the `Buffer` and `Stream` in Node.js? |
`Buffer` is a temporary storage space for binary data, which is used to handle and manipulate raw data
in Node.js. `Stream`, on the other hand, is an abstraction for working with continuous flows of data.
Streams allow you to process large amounts of data efficiently by reading or writing smaller chunks at a
time, reducing memory consumption.
|