JavaScript: O que é o Node.js?

Em seus estudos sobre a linguagem de programação Javascript, provavelmente você se deparou com a ferramenta chamada Node.js. Caso tenha se perguntado o que é essa ferramenta, bem, você está com sorte! Vamos discuti-la aqui.

Explicando o Node.js

Segundo o próprio site do Node.js (2024), a ferramenta é um ambiente de execução (runtime) multiplataforma, gratuito e de código-fonte aberto. A plataforma permite que os desenvolvedores criem servidores, web apps, ferramentas de linha de comando e scripts.

O Node.js foi construído em torno da engine V8 JavaScript, que é o núcleo do navegador Google Chrome. Isso significa que o rutime permite que aplicações em JavaScript sejam executadas fora dos navegadores.

Principais características

De acordo com Pereira (2016), a principal característica da plataforma é ser single-thread (ou single process). Isso significa que uma aplicação em node.js não criará uma nova thread para cada requisição, o que é um paradigma um pouco diferente para aqueles acostumados a programar em multi-thread – como em Java ou .NET.

Outra característica interessante é o conjunto de primitivas de E/S assíncronas e não-bloqueantes nas bibliotecas padrão do runtime. Dessa forma, o comportamento de bloquear a CPU em operações de I/O torna-se a exceção no funcionamento das aplicações construídas em cima da plataforma (NODE.JS, 2024). Para exemplificar, suponha que seu sistema necessite ler um arquivo imenso no armazenamento do servidor. Neste caso, a CPU não será bloqueada, permitindo que outras tarefas da aplicação sejam executadas. Quando a leitura do arquivo terminar, a CPU retornará para a conclusão dessa tarefa quando possível.

Pereira (2016) destaca também que o node.js é orientado a eventos (Event-Loop). Em outras palavras, as ações são disparadas por eventos que ocorrem a partir da interação do usuário ou de aplicações clientes. No caso do JavaScript client-side, os eventos costumam ser ações em mouses, teclados ou elementos de HTML. Quando programamos com JavaScript no server-side, os eventos são originados de operações de E/S (acesso a banco de dados, leitura de sinal em rede etc.)

Conclusão

E ai, o que achou do Node.js? Interessante, não é mesmo? Diversas gigantes da tecnologia têm adotado a ferramenta em suas soluções. Conforme descrito por Pessôa (2022), podemos citar:

  • a Netflix: substituiu o renderizador baseado em Java pelo de JavaScript com Node.js;
  • a IBM: criou o The Canary in the Gold Mine (CITGM), um utilitário de testes amplamente utilizado pela companhia;
  • o LinkedIn: o aplicativo mobile da maior rede profissional é construído em Node.js e HTML5;
  • a Uber: sistema de relacionamento entre usuários e condutores foi construído em Node.js.

Para saber mais sobre a origem e evolução do runtime, você pode assistir o filme Node.js: The Documentary | An origin story, disponível gratuitamente no Youtube e linkado abaixo. O vídeo está em inglês e tem legendas na mesma língua.

Bons estudos!

Referências

NODE.JS. Introduction to Node.js. 2024. Disponível em: https://nodejs.org/en/learn/getting-started/introduction-to-nodejs. Acesso em: 9 mai 2024.

PEREIRA, Caio Ribeiro. Construindo APIs REST com Node.js. 1 ed. São Paulo: Editora Casa do Código, 2016.

PESSÔA, Camila. Node.JS: definição, características, vantagens e usos possíveis. 2022. Disponível em: https://www.alura.com.br/artigos/node-js-definicao-caracteristicas-vantagens-usos. Acesso em: 24 mai 2024.