20 Perguntas e respostas frequentes sobre a entrevista do Node.js

20 Perguntas e respostas frequentes sobre a entrevista do Node.js
Author

Srihari Sasikumar

Last updated May 11, 2018


  • 91625 Views

O Node.js é uma tecnologia do lado do servidor na qual você precisa ser proficiente para se tornar o desenvolvedor ideal da pilha MEAN. É uma das ferramentas de desenvolvimento web mais gratificantes para aprender, não apenas por causa do lucrativo salário - em média US $ 100.000 / ano - mas também pelo crescimento rápido e contínuo de ofertas de emprego que exigem conhecimento da tecnologia.

Se você tem uma entrevista de desenvolvedor de pilha MEAN alinhada ou está antecipando as entrevistas em breve, espere enfrentar uma concorrência acirrada. As 20 perguntas da entrevista descritas abaixo devem ajudá-lo a se preparar adequadamente para responder a todas as perguntas feitas com confiança.

1. O que é o Node.js? Onde você pode usá-lo?

O Node.js é um script do lado do servidor baseado no mecanismo JavaScript V8 do Google. Ele é usado para construir programas escalonáveis, especialmente aplicativos da Web que são computacionalmente simples, mas são acessados ​​com freqüência.

Você pode usar o Node.js no desenvolvimento de aplicativos da Web intensivos de E / S, como sites de streaming de vídeo. Você também pode usá-lo para desenvolver: Aplicativos da Web em tempo real, Aplicativos de rede, Aplicativos de finalidade geral e Sistemas distribuídos.


2. Por que usar o Node.js?

O Node.js facilita a criação de programas de rede escaláveis. Algumas de suas vantagens incluem:

  • Geralmente é rápido
  • Quase nunca bloqueia
  • Oferece uma linguagem de programação unificada e tipo de dados
  • Tudo é assíncrono
  • Ele produz grande concorrência

3. Quais são os recursos do Node.js?

O Node.js é um sistema de encadeamento único, mas altamente escalável, que utiliza JavaScript como linguagem de script. Ele usa E / S assíncrona e orientada a eventos, em vez de processos ou encadeamentos separados. Ele é capaz de obter alta saída por meio de loop de evento de thread único e E / S sem bloqueio.


4. De que outra forma o código JavaScript abaixo pode ser escrito usando o Node.Js para produzir a mesma saída?

console.log ("primeiro");
setTimeout (function () {
console.log ("segundo");
}, 0);
console.log ("terceiro");

Saída:

primeiro
terceiro
segundo

No Node.js versão 0.10 ou superior, setImmediate (fn) será usado no lugar de setTimeout (fn, 0), pois é mais rápido. Como tal, o código pode ser escrito da seguinte forma:

console.log ("primeiro");
setImmediate (function () {
console.log ("segundo");
});
console.log ("terceiro");


5. Como você atualiza o NPM para uma nova versão no Node.js?

Você usa os seguintes comandos para atualizar o NPM para uma nova versão:

$ sudo npm instala npm -g
/ usr / bin / npm -> /usr/lib/node_modules/npm/bin/npm-cli.js
npm@2.7.1 / usr / lib / node_modules / npm


6. Por que o Node.js é Single-threaded?

Node.js é single-threaded para processamento assíncrono. Fazendo o processamento assíncrono em um único thread sob cargas típicas da Web, mais desempenho e escalabilidade podem ser obtidos, ao contrário da implementação típica baseada em encadeamentos.


7. Explique o retorno de chamada no Node.js.

Uma função de retorno de chamada é chamada na conclusão de uma determinada tarefa. Isso permite que outro código seja executado enquanto isso e impede qualquer bloqueio. Sendo uma plataforma assíncrona, o Node.js depende muito do retorno de chamada. Todas as APIs do Node são escritas para suportar retornos de chamada.


8. O que é o inferno de callback no Node.js?

O callback hell é o resultado de callbacks muito aninhados que tornam o código não apenas ilegível, mas também difícil de manter. Por exemplo:

consulta ("SELECT clientId FROM clientes WHERE clientName = 'picanteverde';", function (id) {
query ("SELECT * FROM transações WHERE clientId =" + id, function (transactions) {
transaction.each (function (transac) {
query ("Transações UPDATE SET valor =" + (transac.value * 0.1) + "WHERE id =" + transac.id, function (error) {
if (! erro) {
console.log ("sucesso !!");
}outro{
console.log ("erro");
}
});
});
});
});


9. Como você evita / conserta o retorno de callback?

As três formas de evitar / consertar o inferno de retorno de chamada são:

  • Lide com todos os erros
  • Mantenha seu código superficial
  • Modularize - divide os callbacks em funções menores e independentes que podem ser chamadas com alguns parâmetros, juntando-as para alcançar os resultados desejados.

O primeiro nível de melhoria do código acima pode ser:

var logError = function (error) {
if (! erro) {
console.log ("sucesso !!");
}outro{
console.log ("erro");
}
}
updateTransaction = function (t) {
query ("Transações UPDATE SET valor =" + (t.value * 0.1) + "WHERE id =" + t.id, logError);
}
handleTransactions = function (transactions) {
transaction.each (updateTransaction);
}
handleClient = function (id) {
consulta ("SELECT * FROM transações WHERE clientId =" + id, handleTransactions);
};

consulta ("SELECT clientId FROM clients WHERE clientName = 'picanteverde'; ", handleClient);

Você também pode usar as funções Promises, Generators e Async para corrigir o callback hell.


10. Explique o papel do REPL no Node.js.

Como o nome sugere, o REPL (Read Eval print Loop) executa as tarefas de - Read, Evaluate, Print e Loop. O REPL em Node.js é usado para executar instruções JavaScript ad-hoc. O shell REPL permite a entrada em javascript diretamente em um prompt do shell e avalia os resultados. Para fins de teste, depuração ou experimentação, o REPL é muito crítico.


11. Nomeie os tipos de funções da API no Node.js.

Existem dois tipos de funções no Node.js .:

  • Bloqueio de funções - Em uma operação de bloqueio, todos os outros códigos são impedidos de serem executados até que um evento de E / S que está sendo aguardado ocorra. Funções de bloqueio executadas de forma síncrona

Por exemplo:
const fs = require ('fs');
const data = fs.readFileSync ('/ file.md'); // bloqueia aqui até que o arquivo seja lido
console.log (dados);
// mais trabalho(); será executado após o console.log

A segunda linha de código bloqueia a execução de JavaScript adicional até que todo o arquivo seja lido. moreWork () só será chamado após Console.log

  • Funções sem bloqueio - Em uma operação sem bloqueio, várias chamadas de E / S podem ser executadas sem que a execução do programa seja interrompida. Funções sem bloqueio são executadas de forma assíncrona.

Por exemplo:

const fs = require ('fs');
fs.readFile ('/ file.md', (err, data) => {
se errar, errar;
console.log (dados);
});
// mais trabalho(); será executado antes do console.log

Como fs.readFile () é não-bloqueante, moreWork () não precisa esperar que o arquivo seja concluído antes de ser chamado. Isso permite maior rendimento.


12. Qual é o primeiro argumento normalmente passado para um manipulador de retorno de chamada do Node.js?

Normalmente, o primeiro argumento para qualquer manipulador de retorno de chamada é um objeto de erro opcional. O argumento é nulo ou indefinido se não houver erro.

O tratamento de erros por um manipulador de retorno de chamada típico pode ser o seguinte:

retorno de chamada de função (err, results) {
// normalmente vamos verificar o erro antes de manipular os resultados
if (err) {
// lida com o erro de alguma forma e retorna
}
// sem erro, execute o tratamento padrão de retorno de chamada
}


13. Quais são as funcionalidades do NPM no Node.js?

NPM (Node package Manager) fornece duas funcionalidades:

  • Repositório on-line para pacotes Node.js
  • Utilitário de linha de comando para instalação de pacotes, gerenciamento de versão e gerenciamento de dependências de pacotes Node.js

14. Qual é a diferença entre o Node.js e o Ajax?

Node.js e Ajax (JavaScript assíncrono e XML) são a implementação avançada do JavaScript. Todos eles servem propósitos completamente diferentes.

O Ajax é projetado principalmente para atualizar dinamicamente uma seção específica do conteúdo de uma página, sem precisar atualizar a página inteira.

O Node.js é usado para desenvolver aplicativos cliente-servidor.


15. Explicar o encadeamento no Node.js.

O encadeamento é um mecanismo pelo qual a saída de um fluxo é conectada a outro fluxo, criando uma cadeia de várias operações de fluxo.


16. O que são "streams" no Node.js? Explicar os diferentes tipos de fluxos presentes no Node.js.

Fluxos são objetos que permitem a leitura de dados da origem e a gravação de dados no destino como um processo contínuo.

Existem quatro tipos de fluxos.

  • para facilitar o operação de leitura
  • para facilitar a operação de escrita
  • para facilitar as operações de leitura e gravação
  • é uma forma de fluxo Duplex que executa cálculos com base na entrada disponível

17. O que são códigos de saída no Node.js? Listar alguns códigos de saída

Códigos de saída são códigos específicos que são usados ​​para finalizar um “processo” (um objeto global usado para representar um processo de nó).

Exemplos de códigos de saída incluem:

  • Não utilizado
  • Exceção fatal não identificada
  • Erro fatal
  • Manipulador de exceção interna não função
  • Falha de tempo de execução manipulador de exceção interna
  • Falha de avaliação interna de JavaScript

18. O que são Globals no Node.js?

Três palavras-chave no Node.js constituem como Globals. Esses são:

  • Global - representa o objeto Global namespace e atua como um contêiner para todos os outros objetos .
  • Processo - é um dos objetos globais, mas pode transformar uma função síncrona em um retorno de chamada assíncrono. Ele pode ser acessado de qualquer lugar no código e principalmente retorna informações sobre o aplicativo ou o ambiente.
  • Buffer - é uma classe no Node.js para manipular dados binários.

19. Qual é a diferença entre o AngularJS e o Node.js?

O Angular.JS é uma estrutura de desenvolvimento de aplicativos da Web, enquanto o Node.js é um sistema de tempo de execução.


20. Por que o estilo consistente é importante e quais ferramentas podem ser usadas para assegurá-lo?

O estilo consistente ajuda os membros da equipe a modificar projetos com facilidade, sem precisar se acostumar a um novo estilo a cada vez. Ferramentas que podem ajudar a incluir Standard e ESLint.


Conclusão

Já que toda pergunta tem mais que uma resposta, sinta-se à vontade para personalizar suas respostas o máximo possível, especialmente quando tiver experiência de trabalho para relacionar as respostas. Caso você precise de uma atualização no Node.js ou caso não tenha nenhum treinamento, você deve considerar o treinamento de certificação Node.js da Simplilearn . Este curso oferece um conhecimento profundo de conceitos como encolhimento, programação assíncrona, Node Packet Manager (NPM) e muito mais.

About the Author

Srihari Sasikumar is a Product Manager with over six years of experience in various industries including Information Technology, E-Commerce, and E-Learning. Srihari follows the key trends in Big Data, Data Science, Programming & AI very closely.

Recommended articles for you

Node.js for Beginners: How to Get Started

Article

10 of the Highest Paying Tech Jobs in 2018

Article

Course Announcement: Angular Self-Paced Learning Course

Article