Node JS Interview Questions
What is piping in Node.js?
Piping is a mechanism used to connect the output of one stream to another stream. It is normally used to retrieve data from one stream and pass output to another stream
What are the pros and cons of Node.js?
Pros: * Fast processing and an event-based model * Uses JavaScript, which is well-known amongst developers * Node Package Manager has over 50,000 packages that provide the functionality to an application * Best suited for streaming huge amounts of data and I/O intensive operations Cons: *Not suitable for heavy computational tasks * Using callback is complex since you end up with several nested callbacks * Dealing with relational databases is not a good option for Node.js * Since Node.js is single-threaded, CPU intensive tasks are not its strong suit
What is REPL in Node.js?
REPL stands for Read Eval Print Loop, and it represents a computer environment. It's similar to a Windows console or Unix/Linux shell in which a command is entered. Then, the system responds with an output Read - Reads user's input, parses input into javascript data structure and stores in memory Evaluate - Takes and evaluates the data structure Print - Prints the result Loop - loops the above command
What is an Event Loop in Node.js?
Event loops handle asynchronous callbacks in Node.js. It is the foundation of the non-blocking input/output in Node.js, making it one of the most important environmental features.
What is the Express.js package?
Express is a flexible Node.js web application framework that provides a wide set of features to develop both web and mobile applications
Why is Node.js preferred over other backend technologies like Java and PHP?
Some of the reasons why Node.js is preferred include: * Node.js is very fast * Node Package Manager has over 50,000 bundles available at the developer's disposal * Perfect for data-intensive, real-time web applications, as Node.js never waits for an API to return data * Better synchronization of code between server and client due to same code base * Easy for web developers to start using Node.js in their projects as it is a JavaScript library
What are streams in Node.js?
Streams are objects that enable you to read data or write data continuously. There are four types of streams: *Readable - Used for reading operations *Writable − Used for write operations *Duplex − Can be used for both reading and write operations *Transform − A type of duplex stream where the output is computed based on input
What is a callback function in Node.js?
* A callback is a function called after a given task. This prevents any blocking and enables other code to run in the meantime.
Explain asynchronous and non-blocking APIs in Node.js.
* All Node.js library APIs are asynchronous, which means they are also non-blocking * A Node.js-based server never waits for an API to return data. Instead, it moves to the next API after calling it, and a notification mechanism from a Node.js event responds to the server for the previous API call
What are the two types of API functions in Node.js?
* Asynchronous, non-blocking functions * Synchronous, blocking functions
What is callback hell?
* Callback hell, also known as the pyramid of doom, is the result of intensively nested, unreadable, and unmanageable callbacks, which in turn makes the code harder to read and debug * improper implementation of the asynchronous logic causes callback hell
What is an EventEmitter in Node.js?
* EventEmitter is a class that holds all the objects that can emit events * Whenever an object from the EventEmitter class throws an event, all attached functions are called upon synchronously
What is the purpose of NODE_ENV?
* NODE_ENV is an environmental variable that stands for node environment in express server * It's how we set and detect which environment we are in
How do you create a simple Express.js application?
* The request object represents the HTTP request and has properties for the request query string, parameters, body, HTTP headers, and so on * The response object represents the HTTP response that an Express app sends when it receives an HTTP request
Explain callback in Node.js.
A callback function is called after a given task. It allows other code to be run in the meantime and prevents any blocking. Being an asynchronous platform, Node.js heavily relies on callback. All APIs of Node are written to support callbacks.
What is the purpose of module.exports?
A module in Node.js is used to encapsulate all the related codes into a single unit of code, which can be interpreted by shifting all related functions into a single file. You can export a module using the module.exports, which allows it to be imported into another file using a required keyword.
What is a reactor pattern in Node.js?
A reactor pattern is a concept of non-blocking I/O operations. This pattern provides a handler that is associated with each I/O operation. As soon as an I/O request is generated, it is then submitted to a demultiplexer
What does event-driven programming mean?
An event-driven programming approach uses events to trigger various functions. An event can be anything, such as typing a key or clicking a mouse button. A call-back function is already registered with the element executes whenever an event is triggered.
What is the difference between Angular and Node.js?
Angular: * It is a frontend development framework * It is written in TypeScript * Used for building single-page, client-side web applications * Splits a web application into MVC components (Model - View - Controller Architecture) Node.js: * It is a server-side environment * It is written in C, C++ languages * Used for building fast and scalable server-side networking applications * Generates database queries
How do we implement async in Node.js?
As shown below, the async code asks the JavaScript engine running the code to wait for the request.get() function to complete before moving on to the next line for execution.
What is the buffer class in Node.js?
Buffer class stores raw data similar to an array of integers but corresponds to a raw memory allocation outside the V8 heap. Buffer class is used because pure JavaScript is not compatible with binary data
How does Node.js work?
Clients send requests to the webserver to interact with the web application. Requests can be non-blocking or blocking: Querying for data Deleting data Updating the data Node.js retrieves the incoming requests and adds those to the Event Queue The requests are then passed one-by-one through the Event Loop. It checks if the requests are simple enough not to require any external resources The Event Loop processes simple requests (non-blocking operations), such as I/O Polling, and returns the responses to the corresponding clients A single thread from the Thread Pool is assigned to a single complex request. This thread is responsible for completing a particular blocking request by accessing external resources, such as computation, database, file system, etc. Once the task is carried out completely, the response is sent to the Event Loop that sends that response back to the client.
Explain the difference between frontend and backend development?
Front-End: * Frontend refers to the client-side of an application * It is the part of a web application that users can see and interact with * It typically includes everything that attributes to the visual aspects of a web application * HTML, CSS, JavaScript, AngularJS, and ReactJS are some of the essentials of frontend development Back-End: * Backend refers to the server-side of an application * It constitutes everything that happens behind the scenes * It generally includes a web server that communicates with a database to serve requests * Java, PHP, Python, and Node.js are some of the backend development technologies
What are the different types of HTTP requests?
HTTP defines a set of request methods used to perform desired actions. The request methods include: GET: Used to retrieve the data POST: Generally used to make a change in state or reactions on the server HEAD: Similar to the GET method, but asks for the response without the response body DELETE: Used to delete the predetermined resource
How do you create a simple server in Node.js that returns Hello World?
Import the HTTP module Use createServer function with a callback function using request and response as parameters. Type "hello world." Set the server to listen to port 8080 and assign an IP address
Explain the concept of middleware in Node.js.
Middleware is a function that receives the request and response objects. Most tasks that the middleware functions perform are: * Execute any code * Update or modify the request and the response objects * Finish the request-response cycle * Invoke the next middleware in the stack
What are the modules in Node.js?
Modules are like JavaScript libraries that can be used in a Node.js application to include a set of functions. To include a module in a Node.js application, use the require() function with the parentheses containing the module's name. Node.js has many modules to provide the basic functionality needed for a web application. Some of them include: Core Modules: HTTP - Includes classes, methods, and events to create a Node.js HTTP server util - Includes utility functions useful for developers fs - Includes events, classes, and methods to deal with file I/O operations url - Includes methods for URL parsing query string - Includes methods to work with query string stream - Includes methods to handle streaming data zlib - Includes methods to compress or decompress files
Which database is more popularly used with Node.js?
MongoDB is the most common database used with Node.js. It is a NoSQL, cross-platform, document-oriented database that provides high performance, high availability, and easy scalability.
What is NPM?
NPM stands for Node Package Manager, responsible for managing all the packages and modules for Node.js. Node Package Manager provides two main functionalities: * Provides online repositories for node.js packages/modules, which are searchable on search.nodejs.org * Provides command-line utility to install Node.js packages and also manages Node.js versions and dependencies
What is Node JS?
Node.js is an open-source, cross-platform JavaScript runtime environment and library to run web applications outside the client's browser. It is used to create server-side web applications. Node.js is perfect for data-intensive applications as it uses an asynchronous, event-driven model. You can use I/O intensive web applications like video streaming sites. You can also use it for developing: Real-time web applications, Network applications, General-purpose applications, and Distributed systems.
Why is Node.js Single-threaded?
Node.js is single-threaded for async processing. By doing async processing on a single-thread under typical web loads, more performance and scalability can be achieved instead of the typical thread-based implementation.
How is Node.js most frequently used?
Node.js is widely used in the following applications: 1. Real-time chats 2. Internet of Things 3. Complex SPAs (Single-Page Applications) 4. Real-time collaboration tools 5. Streaming applications 6. Microservices architecture
Why use Node js?
Node.js makes building scalable network programs easy. Some of its advantages include: It is generally fast It rarely blocks It offers a unified programming language and data type Everything is asynchronous It yields great concurrency
What is the command used to import external libraries?
The "require" command is used for importing external libraries. For example - "var http=require ("HTTP")." This will load the HTTP library and the single exported object through the HTTP variable. Now that we have covered some of the important beginner-level Node.js interview questions let us look at some of the intermediate level Node.js interview questions.
How would you use a URL module in Node.js?
The URL module in Node.js provides various utilities for URL resolution and parsing. It is a built-in module that helps split up the web address into a readable format.
How does control flow manage the function calls?
The control flow does the following jobs: * Control the order of execution * Collect data * Limit concurrency * Call the next step in a program
What is the control flow function?
The control flow function is a piece of code that runs in between several asynchronous function calls.
What is the package.json file?
The package.json file is the heart of a Node.js system. This file holds the metadata for a particular project. The package.json file is found in the root directory of any Node application or module This is what a package.json file looks like immediately after creating a Node.js project using the command: npm init You can edit the parameters when you create a Node.js project.
How would you define the term I/O?
The term I/O is used to describe any program, operation, or device that transfers data to or from a medium and to or from another medium Every transfer is an output from one medium and an input into another. The medium can be a physical device, network, or files within a system
What are some of the most commonly used libraries in Node.js?
There are two commonly used libraries in Node.js: ExpressJS - Express is a flexible Node.js web application framework that provides a wide set of features to develop web and mobile applications. Mongoose - Mongoose is also a Node.js web application framework that makes it easy to connect an application to a database.
List the various Node.js timing features.
Timers module is provided by Node.js which contains various functions for executing the code after a specified period of time. Various functions that are provided by this module: * setTimeout/clearTimeout - used to schedule code execution after
How would you connect a MongoDB database to Node.js?
To create a database in MongoDB: Start by creating a MongoClient object Specify a connection URL with the correct IP address and the name of the database you want to create
What is the difference between fork() and spawn() methods in Node.js?
fork() OR: child_process.fork(modulePath[, args][, options]) * fork() is a particular case of spawn() that generates a new instance of a V8 engine. * Multiple workers run on a single node code base for multiple tasks. spawn() OR: child_process.spawn(command[, args][, options]) * Spawn() launches a new process with the available set of commands. * This method doesn't generate a new V8 instance, and only a single copy of the node module is active on the processor.
How do you open a file in Node.js?
fs.open(path, flags[, mode], callback)