Top 41 de întrebări și răspunsuri la interviu Node.Js pe care trebuie să le știi în 2022

Publicat: 2021-01-08

Participați la un interviu Node.js și vă întrebați care sunt toate întrebările și discuțiile prin care veți trece? Înainte de a participa la un interviu Node.js, este mai bine să aveți o idee despre tipurile de întrebări de interviu Node.js care vor fi adresate, astfel încât să puteți pregăti mental răspunsuri pentru ele.

Node.js este un instrument de scripting pe server simplu, dar foarte popular, care utilizează JavaScript. Puteți crea ceva la fel de simplu ca un program de linie de comandă chiar și pentru aplicații web complicate la nivel de întreprindere folosind Node.js. O mulțime de companii veți observa cerințe pentru un dezvoltator certificat Node.js, astfel încât să se ocupe de întreaga parte a serverului. Puteți găsi nevoia de Node.js la diferite niveluri în punctul dvs. de carieră.

Cuprins

Întrebări și răspunsuri la interviu Node.js 2020

Să separăm articolul în trei secțiuni:

  1. Întrebări și răspunsuri la interviu Node.js de nivel de bază
  2. Întrebări și răspunsuri la interviu Node.js de nivel intermediar
  3. Întrebări și răspunsuri la interviu Node.js la nivel de expert

1. Întrebări și răspunsuri la interviu Node.js de nivel de bază

Î.1) Care este diferența dintre Node.js și JavaScript?

Node.js este un interpret și un mediu pentru JavaScript, care este folosit în principal pentru accesarea sau executarea oricărei operațiuni neblocante pentru orice sistem de operare. Motorul care rulează aici este Google Chrome.

Întrucât, JavaScript este un limbaj de programare care este utilizat pentru orice activitate la nivelul clientului pentru o aplicație web. Motorul care rulează aici este Firefox, Safari, Google Chrome etc.

Î.2) Ce este Node.js?

Node.js este un cadru ușor, dar puternic, care este dezvoltat pe motorul JavaScript Chrome . Compilează JavaScript direct în codul nativ al mașinii. Este folosit la construirea de aplicații web pe partea de server și extinde API-ul JavaScript pentru a oferi funcționalități obișnuite pe partea serverului. Oamenii folosesc acest cadru pentru construirea de aplicații pe scară largă, cum ar fi aplicații cu o singură pagină, site-uri de streaming video și alte aplicații bazate pe web.

Î.3) Enumerați câteva avantaje ale utilizării Node.js

  • Este rapid, deoarece este creat pe motorul Chrome JavaScript, ceea ce face biblioteca sa mai rapidă în executarea codului.
  • Este asincron pentru că nu așteaptă niciodată ca un API să ofere date înapoi.
  • Este scalabil datorită mecanismului său de evenimente, care permite serverului să răspundă într-un mod neblocant.
  • Este o sursă deschisă, care oferă o comunitate open-source incredibilă, care a creat câteva module fantastice care au adăugat mai multă putere aplicațiilor Node.js.
  • Node.js nu pune niciodată în tampon datele deoarece rezultatul este în bucăți.

Î.4) Enumerați diferențele dintre Angular și Node.js?

Angular este o sursă deschisă folosită pentru aplicația web, iar Node.js este practic un mediu de rulare multiplatformă pentru aplicații.

Angular este scris în TypeScript și Node.js este scris în limbaje precum C, C++ și JavaScript.

Angular este folosit în principal pentru crearea de aplicații web cu o singură pagină pe partea client, iar Node.js este folosit în principal pentru crearea de aplicații de rețea scalabile și rapide pe partea de server.

Angular este un cadru de aplicații web și Node.js are mai multe cadre diferite, cum ar fi Partial.js, Sails.js și Express.js etc.

Angular este cel mai bine utilizat pentru a crea aplicații web extrem de active și interactive, iar Node.js este cel mai bine utilizat pentru dezvoltarea de proiecte mai mici

Angular ajută la împărțirea unei aplicații în componente MVC și Node.js ajută la crearea de interogări la baza de date

Angular este bine folosit pentru crearea de aplicații în timp real și Node.js este bine folosit pentru situațiile în care este nevoie de mai rapid și mai scalabil

Î.5) De ce Node.js are un singur thread?

Funcționează pe modelul cu un singur thread în loc de implementarea tipică bazată pe fire pentru a ajuta procesarea asincronă. Folosind procesarea asincronă, o aplicație se poate executa mai bine și este mai scalabilă în condiții de încărcare web.

Î.6) Cum funcționează Node.js?

Node.js este o mașină virtuală care rulează într-un mediu v8 folosind JavaScript ca limbaj de scripting. Funcționează pe un model cu un singur fir și un I/O neblocant, ceea ce oferă o rată ridicată, deoarece poate gestiona un număr mai mare de solicitări simultane. Deoarece folosește un modul HTTP, poate rula pe orice server web autonom.

Q.7) Unde putem folosi Node.js?

Node.js poate fi folosit pentru a crea:

  • Aplicații de rețea
  • Aplicații web în timp real
  • Aplicații cu scop general
  • Sisteme distribuite

Î.8) Node.js are câte tipuri de funcții API?

Puteți găsi două tipuri de funcții API în Node.js, și anume funcții sincrone, de blocare și funcții asincrone, neblocante.

Q.9) Care este diferența dintre funcția asincronă și cea neblocante?

Funcțiile asincrone (nu sincrone) sunt acelea prin care putem face solicitări HTTP asincrone care nu așteaptă să răspundă un server. Aceste funcții continuă să revină la cererea pentru care a primit deja răspunsul serverului.

Funcțiile neblocante sunt utilizate în legătură cu operațiunile I/O. Ei răspund rapid cu orice date sunt disponibile și continuă să ruleze conform solicitărilor. În cazul în care nu este returnat niciun răspuns, API-ul revine rapid cu o eroare.

Q.10) Explicați programarea bazată pe evenimente

Este o abordare de programare care folosește în principal evenimente pentru declanșarea mai multor funcții. Evenimentele ar putea fi o apăsare de tastă, un clic de mouse, etc. Când este declanșat un eveniment, este efectuată funcția de apel invers care este preînregistrată cu elementul. Această metodă utilizează în principal modelul publish-subscribe. Datorită acestei metode, Node.js este mai rapid decât alte tehnologii.

Î.11) În contextul Node.js, explicați REPL

REPL în Node.js înseamnă Read, Eval, Print și Loop. Înfățișează o setare a computerului, cum ar fi un shell Unix/Linux sau o consolă fereastră sau unde poate fi înregistrată orice comandă, iar apoi sistemul poate răspunde cu o ieșire. Node.js este livrat implicit cu un mediu REPL. REPL poate executa următoarele sarcini:

  • Citiți: citește intrarea utilizatorului, o convertește în structură de date JavaScript și apoi o stochează în memorie.
  • Eval: primește și evaluează structura datelor.
  • Imprimare: imprimă rezultatul final.
  • Buclă: face bucla comanda dată până când CTRL+C este apăsat de două ori.

Q.12) Listați joburile care ar trebui făcute asincron folosind bucla de evenimente?

  • Operațiuni I/O
  • Calcule grele
  • Orice care necesită blocare

Î13) De ce folosește Google motorul V8 pentru Node.js?

Motorul de rulare V8 convertește codul JavaScript în cod nativ de mașină, rezultând aplicații cu rulare rapidă. Acest motor Chrome accelerează semnificativ procesele de execuție și răspuns.

Î14) Care sunt beneficiile utilizării Node.js?

După cum am discutat mai devreme, Node.js este construit pe motorul V8, ceea ce face ca biblioteca sa execută codul rapid. Un server bazat pe Node.js nu așteaptă ca un API să returneze date, ceea ce înseamnă că este asincron. În plus, Node.js este foarte scalabil, deoarece mecanismul său de evenimente răspunde într-un mod neblocant.

De asemenea, nu există tamponare în aplicațiile Node.js. De-a lungul anilor, a apărut o comunitate open source considerabilă, contribuind cu module excelente și oferind capabilități suplimentare aplicațiilor Node.js.

2. Întrebări și răspunsuri la interviu Node.js de nivel intermediar

Q.15) Ce este o piramidă de test?

Diagrama care explică raportul dintre câte teste unitare, teste de integrare și testul end-to-end este necesar pentru a fi scrisă pentru construirea cu succes a proiectului se numește piramidă de test.

Î16) Care este rolul pachetului Express.js?

Express.js este un cadru care ajută la gestionarea fluxului de date între server și rute în aplicațiile de pe server. Acest cadru flexibil este construit pe Node.js, în special pe modulul middleware numit connect. La rândul său, modulul de conectare folosește modulul HTTP pentru a comunica cu Node.js. Prin urmare, integrarea cu Express.js devine ușoară dacă lucrați cu oricare dintre modulele middleware bazate pe conectare.

Q17) Care este rolul modulului assert în Node.js?

Assert vă permite să scrieți teste. În Node.js, este un modul intern care oferă un set de teste de aserție pentru examinarea invarianților. Puteți utiliza codul require('assert') pentru alte aplicații.

Î.18) Ce este un apel invers pentru prima eroare în Node.js?

Inapoi la începutul erorilor în Node.js sunt folosite pentru a transmite erori și date. Primul parametru care trece aceste funcții trebuie să fie un obiect de eroare. Ceilalți parametri reprezentați sunt datele atașate. Dacă nu există erori sau probleme, puteți continua cu argumentele ulterioare.

var myPost = postare nouă({titlu: „Exemplul meu”});

myPost.save(function(err,myInstance){

daca(a gresit)

{

//tratează eroarea și returnează

}

//continuați cu `myInstance`

});

Î19) Care este scopul fișierului package.json?

Fișierul package.json din Node.js conține metadatele proiectului. Este inima aplicației, unde definiți proprietățile unui pachet. Metadatele fișierului pot fi clasificate în următoarele categorii:

  • Proprietăți precum numele proiectului, licența, autorul, versiunea curentă a modulului, descrierea proiectului etc.
  • De asemenea, puteți include informațiile necesare despre proiectul dvs. scriindu-le direct în fișierul package.json.

Q.20) La ce folosește module.exports?

Pentru a combina toate codurile similare într-o singură unitate de cod, care poate fi executată prin mutarea tuturor funcțiilor asociate într-un anumit fișier, trebuie să folosim module.exports în Node.js. De exemplu, aveți un fișier numit greet.js care cuprinde cele două funcții, așa cum se arată mai jos:

module.exports = {

greetInHindi: function(){

returnează „NAMASTE”;

},

greetInEnglish: function(){

returnează „Bună ziua”;

}};

Modulul.exports oferă două funcții care pot fi importate într-un fișier separat folosind codul de mai jos:

var myGreets = cere (“./greet.js”);

myGreets.greetInHindi() //NAMASTE

myGreets.greetInEnglish() //Bună ziua

Î.21) Ce este un model Reactor în Node.js?

Reactor Pattern în Node.js este o teorie a operațiunilor I/O neblocante. Acest model oferă un handler care este conectat la fiecare operațiune de I/O și, de îndată ce este creată o solicitare I/O, aceasta este apoi trimisă unui demultiplexor . Acest demultiplexor este o interfață de notificare care este capabilă să gestioneze concurența în modul I/O fără blocare.

De asemenea, ajută la gestionarea fiecărei cereri sub forma unui eveniment și apoi plasează fiecare eveniment într-o linie. Rezultă astfel generarea Cozii de evenimente. În același timp, avem bucla noastră de evenimente, care repetă evenimentele prezente în coada de evenimente.

Î.22) Ce sunt versiunile LTS ale Node.js?

LTS înseamnă versiunea de asistență pe termen lung a Node.js care primește toate remedierea erorilor importante cu actualizări de securitate și îmbunătățiri de performanță. Toate aceste versiuni sunt valabile minim 18 luni și se concentrează în primul rând pe probleme de securitate și stabilitate. Modificările aduse versiunilor LTS sunt limitate doar la remedierea erorilor, npm, upgrade-uri de securitate, documentație și accelerarea performanței.

Q.23) Ce înțelegeți prin iad de apel invers?

Callback Hell se mai numește și Piramida Doomului. Este un model care se întâmplă din cauza apelurilor imbricate extreme care nu sunt citite. De obicei, cuprinde mai multe funcții de apel invers imbricate care fac codul greu de citit sau de depanat. Se datorează în principal implementării necorespunzătoare a logicii asincrone.

async_A(funcție(){

async_B(funcție(){

async_C(funcție(){

async_D(funcție(){

….

});

});

});

});

Q24) Listați argumentele de intrare ale async.queue.

În Node.js, async.queue preia două argumente ca intrări. Acestea includ funcția sarcinii și valoarea concurenței.

Q.25) Ce este libuv?

Este o bibliotecă de suport multi-platformă Node.js, care este utilizată în principal pentru I/O asincron. A fost dezvoltat inițial pentru Node.js, dar acum este folosit și cu sistemul nostru, cum ar fi pyuv, Luvit, Julia etc. Libuv este practic o abstractizare în jurul libev/IOCP bazată pe platformă, oferind utilizatorilor un API bazat pe libev. Câteva dintre caracteristicile esențiale ale libuv sunt:

  • Evenimente ale sistemului de fișiere
  • Bucla de evenimente cu funcții complete
  • Prize asincrone TCP și UDP
  • Operațiuni asincrone de fișiere și sisteme de fișiere
  • Procesele copilului

Q.26) Fluxuri în Node.js

Fluxurile vă permit să citiți și să procesați seturi de date mari în Node.js. Aceste obiecte sunt colecții de date care seamănă cu șiruri și matrice. Acestea vă permit să citiți în mod continuu date dintr-o sursă sau să scrieți către o destinație. În Node.js, există patru tipuri fundamentale de fluxuri - Readable, Writable, Duplex și Transform.

Q.27) Cum citiți și executați fișierele în Node.js?

În Node.js, există două moduri de a citi și executa fișiere - readFile și createReadStream. Principala diferență dintre cele două este că readFile este complet tamponat și createReadStream este parțial tamponat. readFile() returnează un răspuns numai atunci când întregul fișier este împins în buffer, încetinind timpul de procesare.

În schimb, createReadStream tratează procesul ca pe o serie de evenimente, împărțind fișierul în bucăți și trimițând răspunsuri unul câte unul. Prin urmare, oferă o modalitate eficientă de procesare a fișierelor mari de date.

Î.28) Ce implementări de securitate sunt disponibile în Node.js?

Autentificarea și gestionarea erorilor sunt cele două implementări majore de securitate în Node.js.

Î.29) Cum sunt gestionate firele copil în Node.js?

Ați crede că, deoarece Node.js este cu un singur thread, nu puteți utiliza firele secundare. Deși, în general, procesul nu expune firele de execuție copii, puteți executa în continuare anumite sarcini I/O asincrone în fundal folosind spawn(). Prin aceasta, bucla principală de evenimente a aplicației nu este împiedicată. De asemenea, puteți include modulul ChildProcess pentru a utiliza acest concept de threading în mod explicit.

3. Întrebări și răspunsuri la interviu Node.js la nivel de expert

Q.30) La ce folosește NODE_ENV?

Dacă proiectul dvs. este la nivel de producție, Node.js promovează convenția de utilizare a variabilei NODE_ENV pentru a-l semnala. Acest lucru ajută la luarea unei decizii mai bune în timp ce proiectul este creat. În plus, când setați NODE_ENV la producție, aplicația dvs. funcționează mai rapid de aproximativ trei ori.

Î.31) În Node.js, care este diferența dintre createReadStream și readFile

Node.js oferă două moduri de a citi și opera fișiere care folosesc readFile și CreateStream. readFile() este un proces complet în buffer care răspunde numai atunci când întregul fișier este introdus în buffer și citit. Este un proces care necesită multă memorie, care devine foarte lent pentru fișierele mai mari.

În timp ce în cazul createReadStream este parțial tamponat, ceea ce ia întregul proces ca o serie de evenimente. Fișierul este împărțit în bucăți mari, care sunt apoi procesate și trimise înapoi ca răspuns pe rând. Odată finalizate, acestea sunt apoi eliminate din buffer, făcându-l mai eficient pentru procesarea fișierelor mai mari.

Q.32) Explicați utilizarea clasei tampon în Node.js

Clasa buffer din Node.js stochează datele brute ca o matrice de numere întregi. Corespunde unei alocări de memorie în afara domeniului V8, ceea ce înseamnă că este o clasă globală. Clasa poate fi accesată fără a importa un modul buffer în Node.js. Necesitatea clasei tampon apare deoarece JavaScript nu este compatibil cu datele binare.

Q.33) Faceți diferența între spawn() și fork()

Utilizați spawn() în Node.js pentru a lansa un nou proces. Cu setul de comenzi furnizat, acest proces activează doar o copie a modulului nod de pe procesor. Deoarece nu este creată nicio instanță V8 nouă, spawn() devine deosebit de util atunci când procesul copilului returnează o cantitate mare de date.

În schimb, metoda fork() execută o nouă instanță a motorului V8. Aceasta înseamnă că mai mulți lucrători rulează pe un singur cod bazat pe nod pentru diferite sarcini.

Q.34) Dezvoltare front-end și back-end

Dezvoltarea front-end se bazează pe solicitări asincrone și AJAX, în timp ce dezvoltarea back-end se bazează pe o arhitectură de server. Primul folosește limbaje de markup și web precum HTML, JavaScript, CSS etc. în scopuri SEO. În timp ce acesta din urmă folosește limbaje de programare Python, Ruby și altele pentru backup. Dezvoltarea front-end este mai accesibilă în comparație cu dezvoltarea back-end.

Q.35) Listați pașii utilizării funcției flux de control.

Codul executat între apelurile funcției asincrone din Node.js este funcția fluxului de control. Funcționarea funcției poate fi explicată prin următorii pași:

  • În primul rând, controlați ordinea de execuție
  • Apoi, colectați datele necesare
  • Apoi, limitați concurența
  • În cele din urmă, invocați următorul pas al programului

Q.36) Denumiți caracteristicile de sincronizare ale Node.js.

Node.js oferă un modul Timers, care cuprinde diverse funcții pentru rularea codului după o anumită perioadă de timp. Diferitele funcții oferite de acest modul:

setTimeout/clearTimeout – Este folosit pentru a programa execuția codului după câteva milisecunde

setInterval/clearInterval – Este folosit pentru a executa un bloc de cod de mai multe ori

setImmediate/clearImmediate – Este folosit pentru a rula cod la sfârșitul ciclului curent al buclei de eveniment

process.nextTick – Este folosit pentru a programa o funcție de apel invers care trebuie declanșată în următoarea iterație a buclei de evenimente

Q.37) Spuneți-ne despre teoria Punycode în Node.js?

Punycode este o sintaxă de codificare. Este folosit pentru a traduce șirul de caractere Unicode (UTF-8) într-un șir de caractere ASCII de bază. Acest lucru este necesar deoarece numele de gazdă recunosc doar caractere ASCII. Vine implicit pentru toate versiunile după 0.6.2. Cu toate acestea, dacă doriți să o utilizați pentru versiuni mai vechi, o puteți face folosind sintaxa:

punycode = require('punycode');

Î.38) Faceți diferența între Node.js și Ajax?

Node.js este un JavaScript pe partea de server, spre deosebire de Ajax, care este o tehnologie pe partea client. Ajax este în principal să actualizeze sau să editeze pagina web fără a fi nevoie chiar să reîmprospăteze pagina. Întrucât, Node.js este necesar pentru a dezvolta software-ul de server care este de obicei realizat de servere, mai degrabă decât de browserele web.

Q.39) Node.js oferă vreun depanator?

Node.js oferă un protocol simplu bazat pe TCP, precum și un client de depanare încorporat. Dacă doriți să depanați fișierul JavaScript, puteți utiliza argumentul node debug [script.js | -e „script” | <gazdă>: <port> ], urmat de numele fișierului js pe care doriți să îl depanați.

Q.40) Ce sunt obiectele globale?

Puteți utiliza obiecte globale în Node.js fără a fi nevoie să le includeți în mod explicit. Acestea pot fi funcții de module, șiruri de caractere etc. disponibile în domeniul de aplicare al modulelor. Uneori, le puteți găsi în domeniul global.

Q.41) Explicați codurile de ieșire din Node.js.

Codurile de ieșire sunt un set de coduri distincte care sunt folosite pentru a finaliza un anumit proces. Ar putea include și obiectul global. Mai jos sunt câteva exemple de coduri de ieșire utilizate în Node.js:

  • Nefolosit
  • Excepție fatală neprinsă
  • Manipulatorul de excepții intern Eșec la timpul de execuție
  • Eroare fatala
  • Eșec de evaluare internă JavaScript

Învață cursuri de inginerie software online de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Concluzie

Ajunși la sfârșitul colecției noastre cu unele dintre cele mai adresate întrebări și răspunsuri la interviu Node.js , sperăm că le găsiți valoroase și că veți putea să vă impresionați intervievatorii răspunzând corect.

Dacă sunteți interesat să aflați mai multe despre big data, consultați programul Executive PG de la upGrad și IIITB pentru dezvoltarea software completă, care este conceput pentru profesioniști care lucrează și oferă peste 500 de ore de formare riguroasă, peste 9 proiecte și sarcini, IIIT-B Statut de absolvenți, proiecte practice practice și asistență pentru locuri de muncă cu firme de top.

Ce este Nodejs?

Nodejs este un mediu JavaScript pe partea de server. Este bazat pe evenimente, nu blochează și este foarte scalabil. Nodejs este, de asemenea, open source, deci gratuit. Node.js este folosit pentru dezvoltarea de programe de rețea scalabile. Node.js este independent de platformă și funcționează pe diverse sisteme de operare (OS) și poate fi implementat pe Linux, Solaris, Windows și Mac. Node.js este folosit de companii precum LinkedIn, PayPal, IBM, Microsoft etc. Node.js este un runtime JavaScript care este folosit pentru a crea aplicații de rețea rapide și scalabile. Acest runtime este conceput pentru a construi aplicații extrem de concurente care pot gestiona mii de conexiuni simultane.

Ce este dactilografiat?

Typescript este un superset al limbajului JavaScript care este creat de Microsoft. Typescript aduce în JavaScript unele dintre cele mai avansate caracteristici ale limbajului de programare. Dezvoltatorii își pot implementa abilitățile de programare java existente pe server în JavaScript. Typescript este util în special atunci când se dezvoltă aplicații web la scară largă. TypeScript este un limbaj de programare gratuit, open-source, dezvoltat și întreținut de Microsoft. Este un superset strict de JavaScript și adaugă în limbaj tipuri statice opționale și programare orientată pe obiecte bazată pe clasă. Este un limbaj pentru dezvoltarea JavaScript la scară de aplicație.

Ce este MongoDB?