Skip to content

Node.js Coding Interview Questions Answered to help you get ready for your next coding interview.

Notifications You must be signed in to change notification settings

webrndexperts/Node.js-Coding-Interview-Questions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

Interview Questions

Node.js

Q1: What is Node.js? ☆☆

Answer: As an asynchronous event-driven JavaScript runtime, Node.js is designed to build scalable network applications. In the following "hello world" example, many connections can be handled concurrently. Upon each connection, the callback is fired, but if there is no work to be done, Node.js will sleep.

const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});Ś

Source: nodejs.org

Q2: What Can Node.js Do?? ☆☆

Answer:

  • Node.js can generate dynamic page content
  • Node.js can create, open, read, write, delete, and close files on the server
  • Node.js can collect form data
  • Node.js can add, delete, modify data in your database

Source: w3schools

Q3: What are the two types of API functions in Node.js? ☆☆

Answer: The two types of API functions in Node.js are: a) Asynchronous, non-blocking functions b) Synchronous, blocking functions

Q4: What are the key features of Node.js? ☆☆

Answer: Following are main benefits of using Node.js

  • Asynchronous event driven IO helps concurrent request handling - All APIs of Node.js library are aynchronous that is non-blocking. It essentially means a Node.js based server never waits for a API to return data. Server moves to next API after calling it and a notification mechanism of Events of Node.js helps server to get response from the previous API call.
  • Very Fast - Being built on Google Chrome's V8 JavaScript Engine, Node.js library is very fast in code execution.
  • Single Threaded but highly Scalable - Node.js uses a single threaded model with event looping. Event mechanism helps server to respond in a non-bloking ways and makes server highly scalable as opposed to traditional servers which create limited threads to handle requests. Node.js uses a single threaded program and same program can services much larger number of requests than traditional server like Apache HTTP Server.
  • No Buffering - Node.js applications never buffer any data. These applications simply output the data in chunks.
  • Node.js library uses JavaScript - This is another important aspect of Node.js from the developer’s point of view. The majority of developers are already well-versed in JavaScript. Hence, development in Node.js becomes easier for a developer who knows JavaScript.
  • There is an Active and vibrant community for the Node.js framework - The active community always keeps the framework updated with the latest trends in the web development.

Source: tutorialspoint.com

Q5: What are the core modules of Node.js? ☆☆

Answer:

  • EventEmitter
  • Stream
  • FS
  • Net
  • Global Objects

Source: tutorialspoint.com

Q6: What is V8? ☆☆

Answer: The V8 library provides Node.js with a JavaScript engine (a program that converts Javascript code into lower level or machine code that microprocessors can understand), which Node.js controls via the V8 C++ API. V8 is maintained by Google, for use in Chrome.

The Chrome V8 engine :

  • The V8 engine is written in C++ and used in Chrome and Nodejs.
  • It implements ECMAScript as specified in ECMA-262.
  • The V8 engine can run standalone we can embed it with our own C++ program.

Source: nodejs.org

Q7: What is an error-first callback? ☆☆

Answer: Error-first callbacks are used to pass errors and data. The first argument is always an error object that the programmer has to check if something went wrong. Additional arguments are used to pass data.

fs.readFile(filePath, function(err, data) {
  if (err) {
    //handle the error
  }
  // use the data object
});

Source: tutorialspoint.com

Q8: How to make Post request in Node.js? ☆☆

Answer: Following code snippet can be used to make a Post Request in Node.js.

var request = require('request');
request.post('http://www.example.com/action', {
form: {
key: 'value'
}
}, function(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body)
}
});

Source: techbeamers.com

Q9: What are the global objects of Node.js? ☆☆

Answer: These objects are available in all modules. The following variables may appear to be global but are not. They exist only in the scope of modules,

  • __dirname
  • __filename
  • exports
  • module
  • require() The objects listed here are specific to Node.js. There are built-in objects that are part of the JavaScript language itself, which are also globally accessible.

Source: nodejs.org

Source: techbeamers.com

Q10: What is control flow function? ☆☆

Answer: It is a generic piece of code which runs in between several asynchronous function calls is known as control flow function.

Source: lazyquestion.com

Q11: What are Event Listeners? ☆☆

Answer: Event Listeners are similar to call back functions but are associated with some event. For example when a server listens to http request on a given port a event will be generated and to specify http server has received and will invoke corresponding event listener. Basically, Event listener's are also call backs for a corresponding event.

Node.js has built in event's and built in event listeners. Node.js also provides functionality to create Custom events and Custom Event listeners.

Source: lazyquestion.com

Q12: If Node.js is single threaded then how it handles concurrency? ☆☆

Answer: Node provides a single thread to programmers so that code can be written easily and without bottleneck. Node internally uses multiple POSIX threads for various I/O operations such as File, DNS, Network calls etc.

When Node gets I/O request it creates or uses a thread to perform that I/O operation and once the operation is done, it pushes the result to the event queue. On each such event, event loop runs and checks the queue and if the execution stack of Node is empty then it adds the queue result to execution stack.

This is how Node manages concurrency.

Source: codeforgeek.com

Q13: What is Callback Hell? ☆☆

Answer: The asynchronous function requires callbacks as a return parameter. When multiple asynchronous functions are chained together then callback hell situation comes up.

Source: codeforgeek.com

Q14: Could we run an external process with Node.js? ☆☆

Answer: Yes. Child process module enables us to access operating system functionaries or other apps. Scalability is baked into Node and child processes are the key factors to scale our application. You can use child process to run system commands, read large files without blocking event loop, decompose the application into various “nodes” (That’s why it’s called Node).

Child process module has following three major ways to create child processes –

  • spawn - child_process.spawn launches a new process with a given command.
  • exec - child_process.exec method runs a command in a shell/console and buffers the output.
  • fork - The child_process.fork method is a special case of the spawn() to create child processes.

Source: codeforgeek.com

Q15: List out the differences between AngularJS and NodeJS? ☆☆

Answer: AngularJS is a web application development framework. It’s a JavaScript and it is different from other web app frameworks written in JavaScript like jQuery. NodeJS is a runtime environment used for building server-side applications while AngularJS is a JavaScript framework mainly useful in building/developing client-side part of applications which run inside a web browser.

Source: a4academics.com

Q16: How you can monitor a file for modifications in Node.js ? ☆☆

Answer: We can take advantage of File System watch() function which watches the changes of the file.

Source: codingdefined.com

Q17: What are the core modules of Node,js? ☆☆

Answer:

  • EventEmitter
  • Stream
  • FS
  • Net
  • Global Objects

Source: github.com/jimuyouyou

Q18: What is libuv? ☆☆

Answer: libuv is a C library that is used to abstract non-blocking I/O operations to a consistent interface across all supported platforms. It provides mechanisms to handle file system, DNS, network, child processes, pipes, signal handling, polling and streaming. It also includes a thread pool for offloading work for some things that can't be done asynchronously at the operating system level.

Source: nodejs.org

Q19: What is REPL in context of Node? ☆☆☆

Answer: REPL stands for Read Eval Print Loop and it represents a computer environment like a window console or unix/linux shell where a command is entered and system responds with an output. Node.js or Node comes bundled with a REPL environment. It performs the following desired tasks.

  • Read - Reads user's input, parse the input into JavaScript data-structure and stores in memory.
  • Eval - Takes and evaluates the data structure
  • Print - Prints the result
  • Loop - Loops the above command until user press ctrl-c twice.

Source: tutorialspoint.com

Q20: What is a blocking code? ☆☆☆

Answer: If application has to wait for some I/O operation in order to complete its execution any further then the code responsible for waiting is known as blocking code.

Source: tutorialspoint.com

Q21: How Node prevents blocking code? ☆☆☆

Answer: By providing callback function. Callback function gets called whenever corresponding event triggered.

Source: tutorialspoint.com

Q22: What is Event Loop? ☆☆☆

Answer: Node.js is a single threaded application but it support concurrency via concept of event and callbacks. As every API of Node js are asynchronous and being a single thread, it uses async function calls to maintain the concurrency. Node uses observer pattern. Node thread keeps an event loop and whenever any task get completed, it fires the corresponding event which signals the event listener function to get executed.

Source: tutorialspoint.com

Q23: What is Event Emmitter? ☆☆☆

Answer: All objects that emit events are members of EventEmitter class. These objects expose an eventEmitter.on() function that allows one or more functions to be attached to named events emitted by the object.

When the EventEmitter object emits an event, all of the functions attached to that specific event are called synchronously.

const EventEmitter = require('events');

class MyEmitter extends EventEmitter {}

const myEmitter = new MyEmitter();
myEmitter.on('event', () => {
  console.log('an event occurred!');
});
myEmitter.emit('event');

Source: tutorialspoint.com

Q24: What is purpose of Buffer class in Node? ☆☆☆

Answer: Buffer class is a global class and can be accessed in application without importing buffer module. A Buffer is a kind of an array of integers and corresponds to a raw memory allocation outside the V8 heap. A Buffer cannot be resized.

About

Node.js Coding Interview Questions Answered to help you get ready for your next coding interview.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published