Ir direto ao conteúdo

Introdução ao Node.js

Node.js é um ambiente de execução JavaScript de código aberto e multiplataforma. É uma ferramenta popular para praticamente qualquer tipo de projeto!

O Node.js executa o mecanismo JavaScript V8, o núcleo do Google Chrome, fora do navegador. Isso permite que o Node.js tenha um desempenho muito bom.

Um aplicativo Node.js é executado em um único processo, sem a necessidade de criar uma nova thread para cada requisição. O Node.js fornece um conjunto de primitivas de I/O assíncronas em sua biblioteca padrão que impedem o bloqueio do código JavaScript. Além disso, as bibliotecas em Node.js geralmente são escritas usando paradigmas não bloqueantes. Consequentemente, o comportamento de bloqueio é a exceção, e não a regra, no Node.js.

Quando o Node.js realiza uma operação de I/O, como ler da rede, acessar um banco de dados ou o sistema de arquivos, em vez de bloquear a thread e desperdiçar ciclos de CPU esperando, o Node.js retoma as operações quando a resposta é recebida.

Isso permite que o Node.js lide com milhares de conexões simultâneas em um único servidor sem a sobrecarga de gerenciar a concorrência de threads, o que poderia ser uma fonte significativa de bugs.

O Node.js possui uma vantagem única, pois milhões de desenvolvedores front-end que escrevem JavaScript para o navegador agora podem escrever o código do lado do servidor, além do código do lado do cliente, sem a necessidade de aprender uma linguagem completamente diferente.

No Node.js, os novos padrões ECMAScript podem ser usados ​​sem problemas, pois você não precisa esperar que todos os seus usuários atualizem seus navegadores — você decide qual versão do ECMAScript usar alterando a versão do Node.js, e também pode habilitar recursos experimentais específicos executando o Node.js com flags.

Um exemplo de aplicação Node.js

O exemplo mais comum de "Olá Mundo" em Node.js é um servidor web:

const {  } = ('node:http');

const  = '127.0.0.1';
const  = 3000;

const  = ((, ) => {
  . = 200;
  .('Content-Type', 'text/plain');
  .('Hello World');
});

.(, , () => {
  .(`O servidor está rodando em http://${}:${}/`);
});

Para executar este trecho de código, salve-o como um arquivo server.js e execute node server.js no seu terminal. Se você usar a versão mjs do código, deverá salvá-la como um arquivo. server.mjs e execute node server.mjs no seu terminal.

Este código inclui primeiro o Node.js http module.

O Node.js tem uma fantástica standard library, Incluindo suporte de primeira classe para redes.

O método createServer() do http cria um novo servidor HTTP e o retorna.

O servidor está configurado para escutar na porta e no nome do host especificados. Quando o servidor estiver pronto, a função de retorno de chamada é invocada, neste caso, informando que o servidor está em execução.

Sempre que uma nova solicitação é recebida, o request event é chamada, fornecendo dois objetos: uma solicitação (um http.IncomingMessage object) e uma resposta (uma http.ServerResponse object).

Esses dois objetos são essenciais para lidar com a chamada HTTP.

O primeiro fornece os detalhes da requisição. Neste exemplo simples, ele não é usado, mas você poderia acessar os cabeçalhos e os dados da requisição.

O segundo é usado para retornar dados para quem fez a chamada.

Neste caso, com:

Definimos a propriedade statusCode como 200, para indicar uma resposta bem-sucedida.

Definimos o cabeçalho Content-Type:

E fechamos a resposta, adicionando o conteúdo como um argumento para end():

Se você não fez isso ainda, então, instale o Node.js.