NodeJS Interview Questions and Answers
Intermediate / 1 to 5 years experienced level questions & answers
Ques 1. Explain the event-driven architecture in Node.js.
Node.js follows an event-driven, non-blocking I/O model. It means that the server can handle multiple connections simultaneously, and when an event occurs, the corresponding callback function is executed.
Example:
const server = require('http').createServer((req, res) => { /* handle request */ });
Ques 2. Explain the concept of middleware in Express.js.
Middleware functions are functions that have access to the request, response, and next middleware function in the application’s request-response cycle. They can modify the request and response objects or end the request-response cycle.
Example:
app.use((req, res, next) => { /* middleware logic */ next(); });
Ques 3. How does Node.js handle asynchronous code?
Node.js uses callbacks, Promises, and async/await to handle asynchronous operations. Callbacks are a common pattern, but Promises and async/await provide more readable and maintainable code.
Example:
fs.readFile('file.txt', 'utf8', (err, data) => { /* handle file content */ });
Ques 4. What is the purpose of the 'process' object in Node.js?
The 'process' object is a global object that provides information about the current Node.js process. It can be used to get information about the environment, control the process, and handle signals.
Example:
console.log(process.env.NODE_ENV);
Ques 5. Explain the difference between 'process.nextTick()' and 'setImmediate()' in Node.js.
'process.nextTick()' and 'setImmediate()' are used to execute a callback function in the next iteration of the event loop. 'process.nextTick()' has a higher priority and runs before 'setImmediate()'.
Example:
process.nextTick(() => { console.log('Next Tick'); });
Ques 6. Explain the purpose of the 'Buffer' class in Node.js.
The 'Buffer' class in Node.js is used to handle binary data. It provides a way to work with raw data directly without requiring encoding/decoding.
Example:
const buffer = Buffer.from('Hello, Node.js');
Ques 7. What is the event loop in Node.js?
The event loop is a core concept in Node.js that allows the execution of non-blocking asynchronous operations. It continuously checks the message queue and executes callbacks when events occur.
Example:
console.log('Start');
setTimeout(() => console.log('Timeout'), 1000);
console.log('End');
Ques 8. How does the 'require.resolve()' method work in Node.js?
'require.resolve()' is used to find the path of a module file. It returns the absolute path of the resolved module.
Example:
const path = require.resolve('path');
Ques 9. What is middleware in the context of Express.js?
Middleware functions in Express.js are functions that have access to the request, response, and next middleware function. They can modify the request and response objects, terminate the request-response cycle, or call the next middleware in the stack.
Example:
app.use((req, res, next) => { /* middleware logic */ next(); });
Ques 10. Explain the difference between 'exports' and 'module.exports' in Node.js.
'exports' is a shorthand reference to 'module.exports', but reassigning 'exports' directly does not work. To export an object or function, 'module.exports' should be used.
Example:
module.exports = { key: 'value' };
Ques 11. What is the purpose of the 'child_process' module in Node.js?
The 'child_process' module in Node.js is used to create child processes. It provides the 'spawn', 'exec', 'execFile', and 'fork' methods to create and interact with child processes.
Example:
const { spawn } = require('child_process');
const child = spawn('ls', ['-l']);
Ques 12. Explain the role of the 'net' module in Node.js.
The 'net' module in Node.js provides a way to create TCP servers and clients. It allows you to build networking applications, such as chat servers or custom protocols.
Example:
const net = require('net');
const server = net.createServer((socket) => { /* handle connection */ });
Ques 13. What is the purpose of the 'cluster' module in Node.js?
The 'cluster' module in Node.js allows you to create child processes that share server ports. It enables the creation of multi-core server applications, improving performance.
Example:
const cluster = require('cluster');
if (cluster.isMaster) { /* create workers */ } else { /* start server logic */ }
Ques 14. Explain the purpose of the 'crypto' module in Node.js.
The 'crypto' module provides cryptographic functionality in Node.js. It allows for the generation of hashes, HMAC (Hash-based Message Authentication Code), and various encryption/decryption algorithms.
Example:
const crypto = require('crypto');
const hash = crypto.createHash('sha256').update('Hello').digest('hex');
Ques 15. Explain the concept of 'npm scripts' in package.json.
npm scripts are user-defined scripts that can be run using the 'npm run' command. They are defined in the 'scripts' section of the 'package.json' file and can be used for various tasks such as testing, building, or starting the application.
Example:
"scripts": { "start": "node index.js", "test": "mocha test/*.js" }
Ques 16. How can you handle errors in Node.js applications?
Errors in Node.js can be handled using try-catch blocks, using the 'error' event in asynchronous operations, or by using middleware functions in frameworks like Express.js to catch errors globally.
Example:
try { /* code that may throw an error */ } catch (error) { /* handle error */ }
Ques 17. What is the purpose of the 'event emitters' in Node.js?
Event emitters in Node.js allow objects to emit named events that cause functions (listeners) to be called. They are at the core of Node.js's event-driven architecture and are used throughout the standard library.
Example:
const EventEmitter = require('events');
class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter();
myEmitter.on('event', () => console.log('Event emitted'));
Ques 18. What is the role of the 'WebSocket' protocol in Node.js?
WebSocket is a communication protocol that provides full-duplex communication channels over a single, long-lived connection. In Node.js, the 'ws' library is commonly used to implement WebSocket servers and clients.
Example:
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
Ques 19. Explain the concept of 'middleware chaining' in Express.js.
Middleware chaining in Express.js is the process of sequentially applying multiple middleware functions to a request. Each middleware function can modify the request and response objects or terminate the request-response cycle.
Example:
app.use(middleware1);
app.use(middleware2);
app.use(middleware3);
Ques 20. What is the purpose of the 'pm2' module in Node.js?
'pm2' is a process manager for Node.js applications. It allows you to run, monitor, and manage Node.js processes, enabling features like automatic restarts, clustering, and log management.
Example:
pm2 start app.js
Ques 21. Explain the purpose of the 'CORS' middleware in Express.js.
CORS (Cross-Origin Resource Sharing) middleware in Express.js is used to enable or restrict cross-origin HTTP requests. It adds the necessary headers to allow or deny requests from different origins.
Example:
const cors = require('cors');
app.use(cors());
Most helpful rated by users: