25 Interview Questions on Node.js

25 Interview Questions on Node.js
25 Interview Questions on Node.js
NodeJs
NodeJs

Here we listed down the most asked interview questions on Node js so that you don’t have to go anywhere. This is a one-stop destination for all your queries. We provide you the top 25 interview questions on Node js so you can ace your interview. Let’s just look at the questions below.

1. What is Node js?

The first and most asked question is what is Node js? Node js is an open-source server environment that uses javascript to make web software that is computationally simple but is easily accessed. It works really fast and can run on different platforms like Windows, Linux, Mac OsX, etc

2. What are some key benefits of Nodejs?

There are numerous benefits of Node js which are explained as follows.

  1. It is fast because it is built on Google chrome’s V8 JavaScript engine which makes it really fast.
  2. Node js has no buffering and no blocking while working. It outputs the data in chunks.
  3. It is Asynchronous meaning Nodejs never stops for an API to return the data. It is ready to take the next request.

3. Is Node js single-threaded? If yes, then why?

Well yes and actually no. NodeJS is single-threaded since no two functions can be run at the same time. Although, a running program called a process can have multiple threads. NodeJS runs only one program at a time to implement its asynchronous nature of program execution hence a single-threaded server environment but can a program can use multiple threads internally to yield optimal performance hence a multi-threaded server environment.

4. What type of applications you can build using Node js?

  • Streaming apps
  • Chat applications
  • Internet of things
  • Microservices
  • Collaboration tools
  • You just name it and we can build it using Node.js

5. How the content of a file is read by Node js?

The NodeJS’s fs (file-system) module provides an API to interact with the system files. The files can be read with multiple methods available to us. In the example below, we will be using the read file method of the fs module to read the contents of a file.

var fs = require(‘fs’);

fs.readFile(‘DATA’, ‘utf8’, function(err, contents) {

	console.log(contents);

});

console.log(‘after calling readFile’);

if you want to know in synchronous manner then have a look in this sample

var fs = require(‘fs’);

var contents = fs.readFileSync(‘DATA’, ‘utf8’);

console.log(contents);

6. Discuss the streams in Nodejs? And what are the different types of streams?

Streams are something that allows the reading and writing of data from source to destination in a continuous process.

Streams are of 4 types

·         <Readable> that promotes reading operation

·         <Writable> that promotes writing operation

·         <Duplex> that promotes above both

·         < Transform> is a kind of duplex stream that does the computation based on available input.

7. What is the closure?

A closure is a function that is sustained in another scope that has access to all other variables in the outer scope.

8. Does Zlib use in Nodejs? If yes, then why?

Yes, Zlib is used in Nodejs, and Zlib was written by Jean-loup Gailly and Mark Adler. It is a cross-platform data compression library. You need to install a node- Zlib package in order to use Zlib in Nodejs. A sample is given below which shows the code to use Zlib.

var Buffer = require(‘buffer’).Buffer;

var zlib = require(‘zlib’);

var input = new Buffer(‘lorem ipsum dolor sit amet’);

var compressed = zlib.deflate(input);

var output = zlib.inflate(compressed);

9. Discuss the globals in Node.js?

Globals basically comprise three words which are Global, Process and Buffer. Let’s discuss it one by one.

Global–  As the name is suggesting Global is something which has many things under its umbrella. So it’s a namespace object and act as an umbrella for all other objects < global>

Process– It is a specified type of Global and can convert Asynchronous function into an Async callback. It can be linked from anywhere in the code and it basically gives back the information about the application.

Buffer– Buffer is something that is known as a class in Nodejs to tackle the binary data.

10. Differentiate between Nodejs and Ajax?

Ajax is used on a specific section of a page’s content and update that specific portion rather than updating the full part of the content.

Nodejs, on the other hand, used for developing client-server applications. Both of the above serve different purposes and these are the upgraded implementation of JavaScript.

11. What is Modulus in Node Js?

Modules are a reusable block of code whose existence doesn’t impact alternative code in any means. it’s not supported by Javascript. Modules come in ES6. Modules are necessary for Maintainability, Reusability, and Namespacing of Code.

12. What do you mean by an event loop and how does it work?

An event loop tackles all the callbacks in any application. It is the vital component of Nodejs and the main reason behind the non- blocking I/O. Since Node.js is associate event-driven language, you’ll be able to simply attach an observer to an occurrence so once the event happens the callback is executed by the precise observer.

13. What is callback hell?

Callback Hell is additionally referred to as the Pyramid of Doom. it’s a pattern caused by intensively nested callbacks that square measure unreadable and unwieldy. It usually contains multiple nested request functions that successively build the code exhausting to browse and correct. it’s caused by improper implementation of the asynchronous logic.

query(“SELECT clientId FROM clients WHERE clientName=’picanteverde’;”, function(id){

  query(“SELECT * FROM transactions WHERE clientId=” + id, function(transactions){

    transactions.each(function(transac){

      query(“UPDATE transactions SET value = ” + (transac.value*0.1) + ” WHERE id=” + transac.id, function(error){

        if(!error){

          console.log(“success!!”);

        }else{

          console.log(“error”);

        }

      });

    });

  });

});

14. What are the types of API functions in Nodejs?

There are mainly two types of API functions, one is blocking function and the other is non- blocking function.

Blocking function:  These functions implement synchronously and all other code is blocked from implementing until an I/O event that is being waited occurs.

For instance

const fs = require(‘fs’);

const data = fs.readFileSync(‘/file.md’); // blocks here until file is read

console.log(data);

// moreWork(); will run after console.log

Non-blocking Functions: These functions implement ASynchronoulsy and in this multiple, I/O calls can be executed without being waited for.

For instance

const fs = require(‘fs’);

fs.readFile(‘/file.md’, (err, data) => {

  if (err) throw err;

  console.log(data);

});

// moreWork(); will run before console.log

Since fs.readFile () is non-blocking, moreWork () does not have to wait for the file read to complete before being called. This allows for higher throughput.

15. What is Chaining in Nodejs?

Chaining is a system where one stream has an output and that is connected with the output of another stream that creates a chain-like formation of multiple stream operations.

16. Explain the Exit codes in Nodejs? Name some of the exit codes?

As the name is suggesting exit codes are those codes that are used to end the Process where process means a global object that represents a node process.

There are some exit codes given below.

  • Fatal error
  • Uncaught fatal Exception
  • Internal javascript Evaluation failure
  • Non-function internal exception handler
  • Unused
  • Internal exception handler Run-time Failure.

17. What is the working of control flow function?

Control flow function in Nodejs is a code that is implemented between Asynchronous function calls. There are some steps given below which must be followed while implementing it.

  • First, the order of execution must be controlled
  • Second,  collection of the required data is must,
  • Third, concurrency must be limited.
  • When the above process is done the next step of the program is requested.

18. Differentiate between readfile and createReadSTream in Nodejs?

  • Readfile loads complete file that you have marked to read on the other hand createReadStream reads the complete file in the pieces you have declared.
  • CreateReadStream works faster than Readfile. The client will get slower data in the latter one.
  • In Createreadstream, it first read by memory in parts the client will get a part of data that is read and this process will continue until it finishes but in Readfile a file is read by memory completely then the client will get it.

19. How to update a new version of NPM in Nodejs?

For this, you have to give a command for updating in Nodejs

$ sudo npm install npm -g

/usr/bin/npm -> /usr/lib/node_modules/npm/bin/npm-cli.js

[email protected] /usr/lib/node_modules/npm

20. How to prevent/ fix callback hell?

There are three ways to prevent fix callback hell

Handle every single error

Keep your code shallow

Modularize – split the callbacks into smaller, independent functions that can be called with some parameters then joining them to achieve desired results.

The first level of improving the code above might be:

var logError = function(error){

    if(!error){

      console.log(“success!!”);

    }else{

      console.log(“error”);

    }

  },

  updateTransaction = function(t){

    query(“UPDATE transactions SET value = ” + (t.value*0.1) + ” WHERE id=” + t.id, logError);

  },

  handleTransactions = function(transactions){

    transactions.each(updateTransaction);

  },

  handleClient = function(id){

    query(“SELECT * FROM transactions WHERE clientId=” + id, handleTransactions);

  };

query(“SELECT clientId FROM clients WHERE clientName=’picanteverde’;”,handleClient);

You can also use Promises, Generators and Async functions to fix callback hell.

21. What is the procedure to handle child threads in Nodejs ?

In general, Node.js could be a single-threaded method and doesn’t expose the child threads or thread management ways. however, you’ll still build use of the child threads victimization spawn() for a few specific asynchronous I/O tasks that execute within the background and don’t sometimes execute any JS code or hinder with the most event loop within the application.

22. What are the different timing features of Nodejs?

Node.js gives a Timers module that contains different functions for executing the code after a stipulated period of time. There are some features of different timing that are given below.

setTimeout/clearTimeout –  It is Used to schedule code execution after a specific amount of milliseconds

setInterval/clearInterval – Used to implement a block of code multiple times

setImmediate/clear Immediate – Used to implement code at the end of the current event loop cycle

process.nextTick – Used to schedule a callback function that needs to be requested in the next repetition of the Event Loop.

23. What is the usage of buffer class in Nodejs?

Buffer category in Node.js is employed for storing the raw information similar manner of an array of integers. However, it corresponds to a raw memory allocation that’s settled outside the V8 heap. it’s a worldwide category that’s simply accessible will be accessed in AN application while not importation a buffer module. Buffer category is employed as a result of pure JavaScript isn’t compatible with binary knowledge.

24. What is the role of REPL in Nodejs?

REPL stands for Read, Eval, Print, Loop. The REPL in Node.js is used to implement ad-hoc Javascript statements. The REPL shell allows entry to javascript directly into a shell prompt and evaluates the results. For the purpose of testing, debugging, or experimenting, REPL is very critical.

25. What is libuv in Nodejs

libuv is a Cross-platform I/O abstraction library that supports asynchronous I/O based on event loop. It is written in C and released under MIT Licence.

libuv support Windows IOCP, epoll(4), kqueue(2), and Solaris event ports. Initially, it was designed for Node.js but after that, it is also used by other software projects.