Node.js Flashcards

1
Q

What is Node.js?

A

Node.js is a JavaScript runtime built on Chrome’s V8 JavaScript engine.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

True or False: Node.js is single-threaded.

A

True

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is the primary use case for Node.js?

A

Building scalable network applications.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Fill in the blank: Node.js uses __________ for managing asynchronous calls.

A

event-driven architecture

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is npm?

A

npm is the package manager for Node.js.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

True or False: Node.js can be used for front-end development.

A

False

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What command is used to initialize a new Node.js project?

A

npm init

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the purpose of the ‘require’ function in Node.js?

A

To import modules.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Multiple Choice: Which of the following is a core module in Node.js? A) express B) fs C) mongoose

A

B) fs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What does the ‘fs’ module in Node.js stand for?

A

File System

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

True or False: Node.js is ideal for I/O-heavy applications.

A

True

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is a callback function?

A

A function passed into another function as an argument that is executed after the first function completes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Fill in the blank: Node.js uses a __________ model to handle requests.

A

non-blocking I/O

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is the default port for a Node.js application?

A

There is no default port; it can be set to any valid port.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Multiple Choice: Which of the following frameworks is built on top of Node.js? A) Angular B) React C) Express

A

C) Express

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is the purpose of middleware in Express.js?

A

Middleware functions are used to process requests and responses in the application.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

True or False: Node.js can be used for database management.

A

True

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What is the purpose of the ‘next’ function in Express middleware?

A

To pass control to the next middleware function.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Fill in the blank: The __________ method is used to send a response back to the client in Express.

A

res.send()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What does the ‘process’ object in Node.js represent?

A

The current Node.js process.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Multiple Choice: Which of the following is not a built-in module in Node.js? A) http B) url C) json

A

C) json

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What is the purpose of the ‘package.json’ file?

A

To manage project dependencies and metadata.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

True or False: Node.js supports promises and async/await for handling asynchronous code.

A

True

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What is the event loop in Node.js?

A

The mechanism that allows Node.js to perform non-blocking I/O operations.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Fill in the blank: The __________ module allows you to create HTTP servers in Node.js.
http
26
What is the purpose of the 'cors' package?
To enable Cross-Origin Resource Sharing in web applications.
27
Multiple Choice: Which command installs a package globally in Node.js? A) npm install B) npm install -g C) npm install --global
B) npm install -g
28
What is a promise in JavaScript?
An object that represents the eventual completion or failure of an asynchronous operation.
29
True or False: You can run JavaScript code in Node.js without a web browser.
True
30
What does the 'npm start' command do?
It runs the script defined in the 'start' property of the package.json file.
31
Fill in the blank: Node.js applications are __________ by default.
event-driven
32
What is the purpose of the 'dotenv' package?
To load environment variables from a .env file into process.env.
33
Multiple Choice: Which HTTP method is used to update a resource? A) GET B) POST C) PUT
C) PUT
34
What does 'npm audit' do?
It checks for vulnerabilities in your project's dependencies.
35
True or False: You can use Node.js for real-time applications like chat apps.
True
36
What is the 'cluster' module used for in Node.js?
To create child processes that can share server ports.
37
Fill in the blank: The __________ function handles errors in asynchronous code.
catch
38
What is the 'body-parser' middleware used for?
To parse incoming request bodies in a middleware before your handlers.
39
Multiple Choice: Which of the following is a common database used with Node.js? A) MongoDB B) MySQL C) Both A and B
C) Both A and B
40
What is the purpose of the 'mongoose' library?
To provide a schema-based solution for modeling application data with MongoDB.
41
True or False: Node.js supports WebSockets for real-time communication.
True
42
What does the 'res.json()' method do in Express?
It sends a JSON response.
43
Fill in the blank: The __________ method is used to handle GET requests in Express.
app.get()
44
What is the purpose of the 'jsonwebtoken' library?
To create and verify JSON Web Tokens (JWTs).
45
Multiple Choice: Which of the following is NOT a feature of Node.js? A) Event-driven B) Multi-threaded C) Non-blocking I/O
B) Multi-threaded
46
What is the significance of the 'async' keyword in JavaScript?
It allows you to write asynchronous code that looks synchronous.
47
True or False: Node.js has built-in support for handling file uploads.
False
48
What is the purpose of the 'express-session' middleware?
To manage sessions in Express applications.
49
Fill in the blank: The __________ method is used to delete a resource in Express.
app.delete()
50
What does the 'crypto' module in Node.js provide?
Cryptographic functionality that includes a set of wrappers for OpenSSL's hash, HMAC, cipher, decipher, sign, and verify functions.
51
Multiple Choice: Which of the following is a framework for building RESTful APIs in Node.js? A) Angular B) Express C) Vue
B) Express
52
What is the purpose of the 'nodemon' package?
To automatically restart the Node.js application when file changes are detected.
53
True or False: Node.js can be used for server-side rendering of web applications.
True
54
What does the 'app.listen()' method do in Express?
It binds and listens for connections on the specified host and port.
55
Fill in the blank: The __________ module is used to handle HTTP requests and responses in Node.js.
http
56
What is the purpose of the 'multer' package?
To handle multipart/form-data, which is used for uploading files.
57
Multiple Choice: Which of the following is a common testing framework for Node.js? A) Jest B) Mocha C) Both A and B
C) Both A and B
58
What is the purpose of the 'express.Router()'?
To create modular, mountable route handlers.
59
True or False: Node.js is only suitable for small applications.
False
60
What is the 'path' module used for?
To work with file and directory paths.
61
Fill in the blank: You can use the __________ module to create a simple HTTP server in Node.js.
http
62
What is the role of the 'npm install' command?
To install a package and its dependencies.
63
Multiple Choice: Which method is used to send a response with a status code in Express? A) res.send() B) res.status() C) Both A and B
C) Both A and B
64
What is the purpose of the 'express-validator' library?
To validate and sanitize user input.
65
True or False: Node.js can handle concurrent connections with a single thread.
True
66
What does the 'res.redirect()' method do in Express?
It redirects the client to a different URL.
67
Fill in the blank: The __________ function is called when an error occurs in a Node.js application.
error handler
68
What is the 'pm2' package used for?
To manage Node.js applications in production.
69
Multiple Choice: Which of the following is a database driver for MongoDB in Node.js? A) mysql B) mongoose C) sqlite3
B) mongoose
70
What is the purpose of the 'helmet' middleware?
To secure Express apps by setting various HTTP headers.
71
True or False: Node.js can be used for building command-line tools.
True
72
What does the 'res.sendFile()' method do in Express?
It sends a file as an octet stream.
73
Fill in the blank: The __________ module is used to create and manage child processes in Node.js.
child_process
74
What is the purpose of the 'compression' middleware?
To compress HTTP responses to reduce their size.
75
Multiple Choice: Which of the following is a method to handle errors in Express? A) app.error() B) app.use() C) app.catch()
B) app.use()
76
What does the 'setTimeout()' function do?
It executes a function after a specified delay.
77
True or False: Node.js can be used to create RESTful APIs.
True
78
What is the purpose of the 'mongoose.connect()' method?
To connect to a MongoDB database.
79
Fill in the blank: The __________ method is used to handle POST requests in Express.
app.post()
80
What is the purpose of the 'express.static()' middleware?
To serve static files such as images, CSS, and JavaScript.
81
Multiple Choice: Which of the following is a popular template engine for Express? A) EJS B) Angular C) React
A) EJS
82
What is the function of the 'os' module in Node.js?
To provide operating system-related utility methods and properties.
83
True or False: Node.js is not suitable for CPU-intensive tasks.
True
84
What is Node.js?
Node.js is Server-side scripting which is used to build scalable programs. It is a web application framework built on Google Chrome's JavaScript Engine. It runs within the Node.js runtime on Mac OS, Windows, and Linux with no changes. This runtime facilitates you to execute a JavaScript code on any machine outside a browser.
85
Is Node.js free to use?
Yes. It is released under MIT license and is free to use.
86
Is Node a single threaded application?
Yes. Node is a single-threaded application with event looping.
87
What is the purpose of Node.js?
These are the following purposes of Node.js: Real-time web applications Network applications Distributed systems General purpose applications
88
What are the advantages of Node.js?
Following are the main advantages of Node.js: Node.js is asynchronous and event-driven. All API?s of Node.js library are non-blocking, and its server doesn't wait for an API to return data. It moves to the next API after calling it, and a notification mechanism of Events of Node.js responds to the server from the previous API call. Node.js is very fast because it builds on Google Chrome?s V8 JavaScript engine. Its library is very fast in code execution. Node.js is single threaded but highly scalable. Node.js provides a facility of no buffering. Its application never buffers any data. It outputs the data in chunks.
89
Explain Node.js web application architecture?
A web application distinguishes into 4 layers: Client Layer: The Client layer contains web browsers, mobile browsers or applications which can make an HTTP request to the web server. Server Layer: The Server layer contains the Web server which can intercept the request made by clients and pass them the response. Business Layer: The business layer contains application server which is utilized by the web server to do required processing. This layer interacts with the data layer via database or some external programs. Data Layer: The Data layer contains databases or any source of data.
90
What do you understand by the term I/O?
The term I/O stands for input and output. It is used to access anything outside of your application. The I/O describes any program, operation, or device that transfers data to or from a medium or another medium. This medium can be a physical device, network, or files within a system. I/O is loaded into the machine memory to run the program once the application starts.
91
How many types of API functions are available in Node.js?
There are two types of API functions in Node.js: Asynchronous, Non-blocking functions Synchronous, Blocking functions
92
What do you understand by the first class function in JavaScript?
When functions are treated like any other variable, then those functions are called first-class functions. Apart from JavaScript, many other programming languages, such as Scala, Haskell, etc. follow this pattern. The first class functions can be passed as a param to another function (callback), or a function can return another function (higher-order function). Some examples of higher-order functions that are popularly used are map() and filter().
93
What is the difference between JavaScript and Node.js?
94
Explain the working of Node.js?
Last 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 completed, the response is sent to the Event Loop that sends that response back to the client.
95
How can you manage the packages in your Node.js project?
We can manage the packages in our Node.js project by using several package installers and their configuration file accordingly. Most of them use npm or yarn. The npm and yarn both provide almost all libraries of JavaScript with extended features of controlling environment-specific configurations. We can use package.json and package-lock.json to maintain versions of libs being installed in a project. So, there is no issue in porting that app to a different environment.
96
Why is Node.js Single-threaded?
Node.js is a single-threaded application with event looping for async processing. The biggest advantage of doing async processing on a single thread under typical web loads is that you can achieve more performance and scalability than the typical thread-based implementation.
97
What do you understand by callback hell in Node.js?
Callback hell is a phenomenon that creates a lot of problems for a JavaScript developer when he tries to execute multiple asynchronous operations one after the other. A function is called an asynchronous function when some external activity must complete before processing a result. It is called asynchronous because there is an unpredictable amount of time before a result becomes available. These functions require a callback function to handle errors and process the result.
98
How is Node.js better than other most popular frameworks?
Based on the following criteria, we can say that Node.js is better than other most popular frameworks: js makes development simple because of its non-blocking I/O and even-based model. This simplicity results in short response time and concurrent processing, unlike other frameworks where developers use thread management. js runs on a chrome V8 engine which is written in C++. It enhances its performance highly with constant improvement. With Node.js, we will use JavaScript in both the frontend and backend development that will be much faster. js provides ample libraries so that we don't need to reinvent the wheel.
99
In which types of applications is Node.js most frequently used?
Node.js is most frequently and widely used in the following applications: Internet of Things Real-time collaboration tools Real-time chats Complex SPAs (Single-Page Applications) Streaming applications Microservices architecture etc.
100
What are some commonly used timing features of Node.js?
101
What do you understand by the term fork in Node.js?
Generally, a fork is used to spawn child processes. In Node.js, it is used to create a new instance of the V8 engine to run multiple workers to execute the code.
102
Which is the best tool we can use to assure consistent code style in Node.js?
ESLint tool is one of the best tools we can use with any IDE to ensure a consistent coding style. It also helps in maintaining the codebase.
103
What is the main difference between front-end and back-end development?
104
Give an example to demonstrate how can we use async await in Node.js?
105
What are the modules in Node.js? Which are the different modules used in Node.js?
In Node.js applications, modules are like JavaScript libraries and include a set of functions. To include a module in a Node.js application, we must use the require() function with the parentheses containing the module's name. Node.js has several modules which are used to provide the basic functionality needed for a web application. Following is a list of some of them:
106
What are buffers in Node.js?
In general, a buffer is a temporary memory mainly used by the stream to hold on to some data until it is consumed. Buffers are used to represent a fixed-size chunk of memory allocated outside of the V8 JavaScript engine. It can't be resized. It is like an array of integers, which each represents a byte of data. It is implemented by the Node. js Buffer class. Buffers also support legacy encodings like ASCII, utf-8, etc.
107
What is error-first callback?
Error-first callbacks are used to pass errors and data. If something goes wrong, the programmer has to check the first argument because it is always an error argument. Additional arguments are used to pass data.
108
What is an asynchronous API?
All the API's of Node.js library are asynchronous means non-blocking. A Node.js based server never waits for an API to return data. The Node.js server moves to the next API after calling it, and a notification mechanism of Events of Node.js responds to the server for the previous API call.
109
How can you avoid callbacks?
To avoid callbacks, you can use any one of the following options: You can use modularization. It breaks callbacks into independent functions. You can use promises. You can use yield with Generators and Promises.
110
Does Node.js provide Debugger?
Yes, Node.js provides a simple TCP based protocol and built-in debugging client. For debugging your JavaScript file, you can use debug argument followed by the js file name you want to debug.
111
What is a control flow function?
Control flow function is a generic piece of code that runs in between several asynchronous function calls.
112
How "Control Flow" controls the functions calls?
The control flow does the following job: Control the order of execution Collect data Limit concurrency Call the next step in a program
113
Is it possible to access DOM in Node?
I/O operations Heavy computation Anything requiring blocking
113
What is REPL in Node.js?
REPL stands for Read Eval Print Loop. It specifies a computer environment like a window console or Unix/Linux shell where you can enter a command, and the computer responds with an output. It is very useful in writing and debugging the codes. REPL environment incorporates Node.js.
114
Explain the tasks of terms used in Node REPL.
Following are the terms used in REPL with their defined tasks: Read: It reads user's input; parse the input into JavaScript data-structure and stores in memory. Eval: It takes and evaluates the data structure. Print: It is used to print the result. Loop: It loops the above command until user press ctrl-c twice to terminate.
115
Is it possible to evaluate simple expressions using Node REPL?
Yes. You can evaluate simple expressions using Node REPL.
116
What is the use of the underscore variable in REPL?
In REPL, the underscore variable is used to get the last result.
117
Does Node.js supports cryptography?
Yes, Node.js Crypto module supports cryptography. It provides cryptographic functionality that includes a set of wrappers for open SSL's hash HMAC, cipher, decipher, sign and verify functions. For example:
118
What is npm? What is the main functionality of npm?
npm stands for Node Package Manager. Following are the two main functionalities of npm: Online repositories for node.js packages/modules which are searchable on search.nodejs.org Command line utility to install packages, do version management and dependency management of Node.js packages.
119
What tools can be used to assure a consistent style in Node.js?
Following is a list of tools that can be used in developing code in teams, to enforce a given style guide and to catch common errors using static analysis. JSLint JSHint ESLint JSCS
120
What is the difference between operational and programmer errors?
Operational errors are not bugs, but create problems with the system like request timeout or hardware failure. On the other hand, programmer errors are actual bugs.
121
What is the difference between the global installation of dependencies and local installation of dependencies?
Global installation of dependencies is stored in/npm directory. While local installation of dependencies stores in the local mode. Here local mode refers to the package installation in node_modules directory lying in the folder where Node application is present. Globally deployed packages cannot be imported using require() in Node application directly. On the other hand, locally deployed packages are accessible via require(). To install a Node project globally -g flag is used. C:\Nodejs_WorkSpace>npm install express ?g To install a Node project locally, the syntax is: C:\Nodejs_WorkSpace>npm install express
122
What is the use of a buffer class in Node.js?
The Node.js provides Buffer class to store raw data similar to an array of integers but corresponds to a raw memory allocation outside the V8 heap. It is a global class and can be accessed in an application without importing a buffer module. Buffer class is used because pure JavaScript is not compatible with binary data. So, when dealing with TCP streams or the file system, it's necessary to handle octet streams.
123
What is the role of assert in Node.js?
The Node.js Assert is a way to write tests. It provides no feedback when running your test unless one fails. The assert module provides a simple set of assertion tests that can be used to test invariants. The module is intended for internal use by Node.js, but can be used in application code via require ('assert'). For example:
124
What are the streams in Node.js?
The Streams are the objects that facilitate you to read data from a source and write data to a destination. There are four types of streams in Node.js: Readable: This stream is used for reading operations. Writable: This stream is used for write operations. Duplex: This stream can be used for both reading and write operations. Transform: It is a type of duplex stream where the output computes according to input.
125
What is event-driven programming in Node.js?
In Node.js, event-driven programming means as soon as Node starts its server, it initiates its variables, declares functions and then waits for an event to occur. It is one of the reasons why Node.js is pretty fast compared to other similar technologies.
126
What is the difference between events and callbacks in Node.js?
Although, Events and Callbacks look similar the differences lies in the fact that callback functions are called when an asynchronous function returns its result whereas event handling works on the observer pattern. Whenever an event gets fired, its listener function starts executing. Node.js has multiple in-built events available through the events module and EventEmitter class which is used to bind events and event listeners.
127
What is the Punycode in Node.js?
The Punycode is an encoding syntax which is used to convert Unicode (UTF-8) string of characters to ASCII string of characters. It is bundled with Node.js v0.6.2 and later versions. If you want to use it with other Node.js versions, then use npm to install Punycode module first. You have to used require ('Punycode') to access it.
128
What does Node.js TTY module contains?
The Node.js TTY module contains tty.ReadStream and tty.WriteStream classes. In most cases, there is no need to use this module directly. You have to used require ('tty') to access this module.
129
What are the main differences between operational and programmer errors?
The most crucial difference between operational and programmer errors is that the operational errors are not bugs but problems with the system such as to request timeout or hardware failure. On the other hand, the programmer errors are actual bugs in the application.
130
What do you understand by an EventEmitter in Node.js?
131
What is the difference between readFile and createReadStream in Node.js?
In Node.js, there are two ways to read and execute files: readFile and CreateStream. The readFile() process is a fully buffered process that returns the response only when the complete file is pushed into the buffer and is read. This process is called a memory-intensive process, and in the case of large files, the processing can be very slow. On the other hand, the createReadStream() is a partially buffered process that treats the entire process as an event series. The entire file is split into chunks and then processed and sent back as a response one by one. After completing this step, they are finally removed from the buffer. Unlike the readFile process, the createReadStream process is effective for the processing of large files.
132
What is the concept of Punycode in Node.js?
In Node.js, the concept of Punycode is used for converting one type of string into another type. Punycode is an encoding syntax used for converting Unicode (UTF-8) string of characters into a basic ASCII string of characters. Now, the hostnames can only understand the ASCII characters so, after the Node.js version 0.6.2 onwards, it was bundled up with the default Node package. To use it with any previous versions, you have to use the following code: punycode = require('punycode');
133
How can you enhance the Node.js performance through clustering?
Just because the Node.js applications run on a single processor, they don't take advantage of a multiple-core system by default. Clustering is used to overcome this issue. The cluster mode is used to start up multiple node.js processes, thereby having multiple instances of the event loop. When we start using clusters in a Node.js app, it creates multiple node.js processes. But there is also a parent process called the cluster manager, which is responsible for monitoring the health of the individual instances of the application.
134
What is a thread pool in Node.js? Which library handles it?