DEV Community

Cover image for NODE Interview Questions...
Kamlesh Gupta
Kamlesh Gupta

Posted on

NODE Interview Questions...

1. What is Node.js?

Answer: Node.js is a runtime environment built on Chrome's V8 JavaScript engine that allows developers to run JavaScript code on the server side. It's designed for building scalable network applications and supports non-blocking, event-driven architecture.

2. What is the difference between Node.js and JavaScript?

Answer: JavaScript is a programming language that runs in the browser.
Node.js is a runtime environment that allows JavaScript to run on the server side.

3. What is Event-Driven Programming in Node.js?

Answer: Event-driven programming is a programming paradigm where the flow of the program is determined by events such as user actions, sensor outputs, or messages from other programs. In Node.js, event-driven programming is central to handling asynchronous operations using event emitters and listeners.

4. What is the difference between process.nextTick() and setImmediate()?

Answer: process.nextTick() schedules a callback to execute after the current operation completes, but before the event loop continues.
setImmediate() schedules a callback to be placed on the event loop after I/O events.

5. How does Node.js handle asynchronous operations?

Answer: Node.js uses a single-threaded, non-blocking I/O model with event-driven architecture. It leverages callbacks, promises, and async/await to handle asynchronous operations, ensuring that the server can process many requests concurrently without blocking the main thread.

6. What are streams in Node.js?

Answer: Streams are objects in Node.js that let you read or write data in chunks. They are used to handle large volumes of data by processing it in smaller, manageable chunks, which reduces memory usage. There are four types of streams:

Readable (e.g., fs.createReadStream())
Writable (e.g., fs.createWriteStream())
Duplex (both readable and writable)
Transform (a type of duplex stream where the output is a transformation of the input)

7. What is the difference between synchronous and asynchronous code in Node.js?

Answer: Synchronous code is blocking; it waits for each operation to complete before moving to the next.
Asynchronous code is non-blocking; it allows the program to continue executing without waiting for the operation to complete (handled via callbacks, promises, or async/await).

8. What are middleware functions in Express.js?

Answer: Middleware functions in Express.js are functions that execute during the request-response cycle. They can modify the request, response, or execute some logic before passing control to the next middleware function. Common types include:

Application-level middleware: Bound to an instance of express()
Router-level middleware: Bound to an instance of express.Router()
Error-handling middleware

9. How does the event loop work in Node.js?

*Answer: * The event loop is responsible for handling asynchronous callbacks in Node.js. It continuously monitors the call stack, the task queue, and the I/O operations. When the call stack is empty, it processes the tasks from the event queue, ensuring non-blocking I/O by deferring heavy operations.

10. What is the use of the cluster module in Node.js?

Answer: The cluster module allows Node.js to create child processes (workers) that share the same server port. This helps in load balancing and making full use of multi-core systems by running multiple instances of Node.js to handle more requests simultaneously.

11. What is the difference between require() and import in Node.js?

Answer: require() is part of the CommonJS module system and is synchronous. It's used to load modules in versions of Node.js before ES6.
import is part of the ES6 module system, and it works with JavaScript’s native module system, enabling support for tree-shaking and static analysis. It's used in newer versions of Node.js with ECMAScript modules.

12. How do you handle errors in Node.js?

Answer: Error handling can be done in several ways:

Using callbacks with the error-first pattern (callback(err, result))
Using Promises with .catch() for rejected promises
Using try...catch blocks with async/await
Using middleware in Express.js for handling errors

13. What is the purpose of the package.json file?

Answer: package.json is a manifest file in a Node.js project that contains metadata about the project and its dependencies. It defines the project’s name, version, main entry point, scripts, dependencies, devDependencies, and other configurations.

  1. How do you secure a Node.js application? Answer: Use HTTPS for secure communication. Implement data validation and sanitization to prevent SQL injection and cross-site scripting (XSS). Use strong authentication and authorization mechanisms (e.g., JWT). Secure sensitive data using environment variables and secure storage. Prevent DOS attacks with rate limiting and timeouts. Keep your packages updated and use auditing tools like npm audit.

15. What is the difference between fs.readFile() and fs.createReadStream()?

*Answer: * fs.readFile() reads the entire file into memory and then executes the callback with the file contents.
fs.createReadStream() reads the file in chunks, making it more memory-efficient for large files as it streams the data rather than loading it all at once.

Top comments (2)

Collapse
 
rickvian profile image
Rickvian Aldi

nice article,
tip, if you want to have deeper understanding in each point of question you can ask follow up questions to each point
e.g point 1 says even driven architecture, ask further question to yourself
"what does event driven architecture mean?"

"Does node js enable even driven uniquely compare to other language?"

interviewer typically will do follow up question, good luck

Collapse
 
kamlesh_gupta_539c974fb0d profile image
Kamlesh Gupta

Thank you for the tip!