Obtained a programming interview arising? Making ready for it’s as vital as creating your coding information to ace it. It’ll provide the confidence to deal with the interview and shake off the jitters. That is very true if you’re going through a programming interview for the primary time in your life.
To assist Node.js builders obtain the required preparedness for an interview, I’ve put collectively a listing of 15 generally requested Node.js- and net development-related interview questions. These questions and their solutions can even immediate you to brush up on any areas you’re feeling want enchancment earlier than the massive interview.
Proper now, let’s dive in to see the Node-related questions you might be more likely to subject in your subsequent interview.
When do you have to use Node.js?
Node.js is asynchronous, event-driven, non-blocking, and single-threaded. It makes Node an ideal candidate for creating the next kinds of purposes:
- Realtime purposes like chat and providers delivering dwell updates.
- Streaming purposes that ship video or different multimedia content material to a big viewers.
- I/O intensive purposes, like collaborative platforms.
- Internet backends that observe microservices structure.
Nonetheless, Node.js’ distinctive qualities make it lower than superb for another kinds of purposes: these that perform CPU-intensive duties like complicated mathematical computations will likely be restricted by Node’s single-threaded execution.
If you wish to be taught extra about this, take a look at our article on Node.js structure and when to make use of Node.js in tasks.
What does EventEmitter do?
Each object in Node.js able to emitting occasions is a member of the
EventEmitter class. The
http module is one such instance.
EventEmitter lessons can use the
eventEmitter.on() operate to connect occasion listeners to the occasion. Then, as quickly as such an occasion is caught, its listeners are known as one after the other synchronously.
What’s Node’s occasion loop?
Since Node.js is single-threaded, it must be non-blocking to forestall the thread from spending too lengthy on a process that takes some time to finish. The occasion loop is answerable for enabling this non-blocking habits. Its job is to schedule pending duties utilizing the appliance thread.
We all know that Node makes use of callbacks to deal with the response returned by an asynchronous operate when its process is full. Just like the occasion that created the duty, the completion of the duty additionally emits an occasion. Node.js provides these occasions that require dealing with to an occasion queue.
The occasion loop iterates over occasions within the occasion queue and schedules when to execute their related callback features.
What are Node Streams?
Streams are pipelines that learn or write knowledge from a supply and switch it to a steady circulate vacation spot. There are 4 kinds of streams:
- Duplex (each readable and writable)
- Remodel (A sort of duplex stream. Its output is calculated utilizing the enter)
Every stream can be an
EventEmitter. It means a stream object can emit occasions when there isn’t a knowledge on the stream, when knowledge is accessible on the stream, or when knowledge within the stream is flushed from this system.
What’s the distinction between readFile and createReadStream features?
readFile operate reads all the content material of the file asynchronously and shops it within the reminiscence earlier than passing it to the consumer.
createReadStream makes use of a readable stream that might learn the file chunk by chunk with out storing everything of it into the reminiscence.
createReadStream optimizes the file studying operation in comparison with
readFile through the use of much less reminiscence and making it sooner. If the file is of appreciable measurement, the consumer doesn’t have to attend a very long time till its whole content material is accessible, as a result of small chunks are despatched to the consumer as they’re learn.
How do you deal with uncaught exceptions in Node.js?
We will catch uncaught exceptions thrown within the utility at its course of stage. We connect a listener to the
course of international object to catch such occasions.
Can Node take full benefit of a multi-processor system?
Node purposes are at all times single-threaded. So, naturally, the appliance makes use of solely a single processor even when operating on multi-processor techniques.
However certainly one of Node’s core modules, Cluster, offers assist for Node purposes to benefit from a number of cores. It permits us to create a number of employee processes that may run on a number of cores in parallel, and share a single port to hearken to occasions.
Right here, every course of makes use of IPC to speak with the primary thread and move the server deal with to others as wanted. The principle course of can both hearken to the port itself and move each new connection to baby processes in a spherical robin order, or assign the port to baby processes so the kid processes hearken to requests.
What’s the reactor design sample utilized in Node.js?
The reactor sample is used for sustaining non-blocking I/O operations in Node.js. It attaches a callback operate (a handler) to every I/O operation. The handler is then submitted to a demultiplexer on the time of request creation.
Demultiplexer collects each I/O request made within the utility and queues them as occasions in a queue. That is what we name the occasion queue. After queuing the occasion, the demultiplexer returns the management of the appliance thread.
In the meantime, the occasion loop iterates over every occasion within the occasion queue, and invokes the connected callback to deal with the occasion response.
That is the reactor sample utilized by Node.js.
What are the advantages of a single-threaded net backend to a multi-threaded one?
Put one other method: although Node is single-threaded, a lot of the programming languages used for backend improvement offers a number of threads to deal with utility operations. In what method is having solely a single thread is helpful to backend improvement?
- It’s simpler for builders to implement purposes. Our purposes don’t have any threat of operating into surprising race circumstances abruptly whereas in manufacturing.
- Single-threaded purposes are simply scalable.
- They’ll serve numerous consumer requests acquired at a second with out a lot delay. Compared, a multi-threaded backend has to attend for a thread from the thread pool to be free to serve the consumer request when site visitors is excessive. With Node’s non-blocking nature, there’s no threat of a consumer request hanging on to the one thread for too lengthy (that is true solely when the operations usually are not CPU-intensive).
What’s REPL in Node?
The callback handed to the setImmediate operate is executed within the subsequent iteration of the occasion loop over the occasion queue.
Then again, the callback handed to the
course of.nextTick is executed earlier than the following iteration of the occasion loop, and after the operation presently operating in this system is completed. On the utility begin, its callback known as earlier than the occasion loop begins iterating over the occasion queue.
course of.nextTick callback is at all times known as earlier than the
What are stubs?
Stubs are used when testing purposes. They simulate the habits of a given element or a module so as to give attention to simply the a part of the code you wish to take a look at. By utilizing stubs instead of elements irrelevant to the take a look at, you gained’t have to fret about exterior elements impacting the outcomes.
For instance, if the element you might be testing has a file studying operation earlier than the half you count on to check, you should use a stub to simulate that habits and return mock content material with out really studying the file.
In Node, we use libraries like Sinon for this objective.
Why is it a superb follow to separate ‘app’ and ‘server’ in Categorical?
By separating app and server in Categorical, we will separate the API implementation from the network-related configuration. This enables us to hold out API exams with out performing community calls. This additionally ensures sooner take a look at execution and higher code protection metrics.
To attain this separation, you need to declare API and server in separate information. Right here we use two information:
What are yarn and npm? Why would you wish to use yarn over npm?
npm is the default bundle supervisor distributed with Node.js. It has a big library of private and non-private packages saved in a database known as ’emp registry’ that customers can entry through npm’s command-line shopper. With the assistance of npm, customers can simply handle dependencies utilized in a undertaking.
yarn can be a bundle supervisor that was launched as a solution to a few of npm’s shortcomings. Nonetheless, yarn depends on the npm registry to supply customers entry to packages. Since yarn’s underlying construction relies on npm itself, your undertaking construction and workflow doesn’t need to undergo main adjustments if you’re migrating to yarn from npm.
Like I discussed earlier than, yarn offers higher performance over npm in some circumstances. Not like npm, it caches each bundle you obtain, so that you don’t need to redownload it at any time when wanted.
It additionally offers higher safety by verifying the integrity of packages utilizing checksums. It ensures a bundle that labored on a sure system will work precisely the identical method in some other system.
On this publish, we went by way of 15 of probably the most generally requested Node.js interview questions that will help you put together higher on your subsequent interview. Figuring out what sort of questions you might be more likely to get requested and realizing their solutions provides you with the arrogance to reply interview questions with out feeling nervous.
This article was initially revealed on Dwell Code Stream by Juan Cruz Martinez (Twitter: @bajcmartinez), founder and writer of Dwell Code Stream, entrepreneur, developer, writer, speaker, and doer of issues.
Dwell Code Stream can be out there as a free weekly e-newsletter. Join updates on all the things associated to programming, AI, and laptop science normally.