Node.js is a popular choice for backend development due to its non-blocking I/O, performance, and JavaScript ubiquity. If you're preparing for a Node.js backend developer interview, here’s a list of commonly asked questions and answers to boost your confidence and help you ace technical rounds.
✅ 1. What is Node.js?
Answer:
Node.js is a runtime environment built on Chrome's V8 JavaScript engine. It allows JavaScript to run outside the browser, primarily used for building scalable backend applications using an event-driven, non-blocking I/O model.
✅ 2. How does the Event Loop work in Node.js?
Answer:
The Event Loop is a single-threaded loop that handles asynchronous operations by delegating tasks to the system kernel or background threads. Phases include:
- Timers
- Pending callbacks
- Idle, prepare
- Poll
- Check
- Close callbacks
This model helps Node.js handle thousands of concurrent connections.
✅ 3. Difference between process.nextTick()
, setImmediate()
, and setTimeout()
?
Function | Description |
---|---|
process.nextTick() |
Executes after current operation, before event loop continues |
setImmediate() |
Executes on the check phase of the event loop |
setTimeout() |
Executes after the specified delay in milliseconds |
✅ 4. What is middleware in Express.js?
Answer:
Middleware functions in Express.js have access to req
, res
, and next()
. They are used to:
- Execute code
- Modify request/response objects
- End the request-response cycle
- Call the next middleware
Example:
app.use((req, res, next) => {
console.log('Request URL:', req.url);
next();
});
✅ 5. How do you handle errors globally in Express?
Answer:
You define an error-handling middleware:
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).json({ error: err.message });
});
Call next(err)
inside other middlewares or routes to forward the error.
✅ 6. How is asynchronous code handled in Node.js?
Answer:
Using:
- Callbacks: Traditional style
-
Promises: Cleaner handling with
.then().catch()
- Async/Await: Syntax sugar over Promises
Example with async/await:
async function getData() {
try {
const data = await fetchData();
console.log(data);
} catch (err) {
console.error(err);
}
}
✅ 7. How does Node.js handle multiple requests if it’s single-threaded?
Answer:
Node.js uses an event loop and asynchronous callbacks to manage concurrent requests. Long-running operations like file I/O are offloaded to worker threads or system resources, so the main thread remains non-blocked.
✅ 8. What are Streams in Node.js?
Answer:
Streams are used to read or write data piece-by-piece. Types:
- Readable
- Writable
- Duplex
- Transform
Example:
const fs = require('fs');
const stream = fs.createReadStream('file.txt');
stream.on('data', chunk => console.log(chunk));
✅ 9. What is the purpose of cluster
module?
Answer:
Node.js apps run on a single thread. The cluster
module allows you to fork multiple child processes (workers) sharing the same server port, thus leveraging multi-core CPUs.
✅ 10. How do you secure a Node.js API?
Answer:
- Use HTTPS
- Validate inputs (e.g., with Joi)
- Use Helmet for securing HTTP headers
- Implement Rate Limiting
- Use JWT tokens
- Avoid exposing sensitive data
✅ 11. How does Node.js handle memory leaks?
Answer:
Memory leaks are usually caused by:
- Unreleased timers
- Global variable overuse
- Closures retaining memory
- Event listener accumulation
Use tools like:
-
--inspect
with Chrome DevTools heapdump
clinic.js
✅ 12. What is the difference between require
and import
?
Feature |
require() (CommonJS) |
import (ESM) |
---|---|---|
Synchronous | Yes | No |
Static analysis | No | Yes (at compile time) |
Dynamic loading | Difficult | Easier with import()
|
✅ 13. What is the difference between res.send()
and res.json()
?
Answer:
-
res.send()
can send a string, object, or buffer. -
res.json()
automatically sets the content-type toapplication/json
and converts object to JSON.
✅ 14. How does JWT authentication work in Node.js?
Answer:
- User logs in with credentials.
- Server generates a JWT with user info, signed with a secret.
- Client stores JWT and includes it in Authorization headers.
- Server validates the JWT on each request.
✅ 15. What is the role of package.json
?
Answer:
package.json
holds metadata for the project, including:
- Project name, version
- Scripts
- Dependencies
- Entry file
✅ 16. What is the difference between npm
and npx
?
-
npm
installs packages. -
npx
runs binaries from packages without installing globally.
Example:
npx create-react-app my-app
✅ 17. How do you use environment variables in Node.js?
Answer:
Using dotenv
package:
require('dotenv').config();
console.log(process.env.PORT);
.env
file:
PORT=5000
✅ 18. How do you structure a large Node.js application?
Answer:
src/
├── controllers/
├── routes/
├── services/
├── models/
├── middlewares/
├── utils/
├── config/
server.js
Follow MVC, isolate business logic, and keep code testable.
✅ 19. What are some popular libraries used in Node.js backend?
- Express.js – Web framework
- Mongoose – ODM for MongoDB
- Sequelize – ORM for SQL
- Joi / Zod – Data validation
- Winston / Morgan – Logging
- jsonwebtoken – JWT auth
✅ 20. How do you test Node.js applications?
Answer:
Use tools like:
- Jest or Mocha for unit testing
- Supertest for API testing
- Sinon for mocks/spies
Example with Jest:
test('adds 1 + 2 to equal 3', () => {
expect(1 + 2).toBe(3);
});
✍️ Final Thoughts
Practicing these Q&As and building a real-world project (like a blog, chat app, or task manager API) will help solidify your knowledge. Node.js interviews often mix theory with hands-on scenarios, so be ready to write code, optimize performance, and architect clean APIs.