Pesquisa · Mapa mental

Node.js

Node.js é um software de código aberto, multiplataforma, baseado no interpretador V8 do Google e que permite a execução de códigos JavaScript fora de um navegador web.

Fonte: Wikipédia (pt)Atualizado em 04/10/2026
01

Histórico

Imagem: sogrady · BY-NC-ND · Openverse

O Node.js foi inicialmente escrito por Ryan Dahl em 2009, cerca de 13 anos após a introdução do primeiro ambiente JavaScript para servidores, o LiveWire Pro Web da Netscape. A versão inicial oferecia suporte apenas a Linux e Mac OS X. Seu desenvolvimento e manutenção foram liderados por Dahl e posteriormente patrocinados pela Joyent. Dahl criticou a capacidade limitada do Apache HTTP Server de lidar com muitas (10.000+) conexões simultâneas, bem como o paradigma dominante de programação sequencial, no qual aplicações poderiam bloquear processos inteiros ou causar a criação de múltiplas pilhas de execução para conexões simultâneas. Dahl demonstrou o projeto na conferência inaugural European JSConf em 8 de novembro de 2009. O Node.js combinou o mecanismo JavaScript do Google V8, um laço de eventos e uma API de E/S de baixo nível. Em janeiro de 2010, foi introduzido um gerenciador de pacotes para o ambiente Node.js chamado npm. O gerenciador de pacotes permite que programadores publiquem e compartilhem pacotes Node.js junto com o código-fonte correspondente, sendo projetado para simplificar a instalação, atualização e desinstalação de pacotes.

02

Características

Imagem: superfluity · BY-NC-SA · Openverse

A principal característica e diferença de outras tecnologias (como PHP, Java, C# e C) é a execução das requisições/eventos em single-thread, onde apenas uma thread (chamada de event loop) é responsável por executar o código Javascript, sem a necessidade de criar nova thread que utilizaria mais recursos computacionais (por exemplo memória RAM) e sem o uso da fila de espera.

Gerenciamento de pacotes

O gerenciamento dos pacotes é feito através do node package manager (npm), e npx (node package extractor), o npx foi introduzido na versão 5.2.0 do JavaScript, antes deveria ser instalado individualmente. O primeiro tem o propósito de instalar para uso posterior código armazenado num package de nodejs, instalando o software globalmente ou localmente, já o segundo tem o propósito de executar a nível local o código instalado globalmente. Um exemplo disso é o npx create-react-app que tem como propósito instalar em nível local um modelo vazio de um app React.

03

Vantagens de uso

Imagem: Chris Devers · BY-NC-ND · Openverse

Flexibilidade

O Node.js possui o gerenciador com inúmeros pacotes e software reusável NPM (Node Package Manager), dando ao interpretador um potencial a ser utilizada em qualquer situação. O pacote mais conhecido é o Express.js, um arcabouço (framework) completo para desenvolvimento de aplicações web.

Leveza

Um ambiente Node.js não exige muitos recursos computacionais tradicionais. Se utilizado em conjunto com a ferramenta Docker, o ganho na velocidade de deployment e replicação de máquinas pode ser muito significativo e, em ambientes escaláveis, de microsserviços e serverless, representa menos custo e mais eficiência. Um exemplo de uso é uma aplicação de bate-papo.

Suporte

Conta com suporte das principais empresas de serviços de armazenamento na nuvem, como a AWS, Google Cloud e, Microsoft Azure, com suporte nativo ao Node.JS.

Produtividade

O gerenciador NPM fornece pacotes reusáveis disponíveis gratuitamente para uso em grupo; Mesma linguagem no front end e back end, que pode representar ganhos de reúso de código e criação de equipes multidisciplinares, reaproveitando recursos; A possibilidade de deployments e iterações mais rápidas, e resolução de problemas on the fly, também permitem a criação de soluções próprias e inovadoras, como a Uber faz para resolver alguns problemas.

04

Exemplo

Imagem: Maciej Zgadzaj · BY · Openverse

Exemplo de um web service RESTful (HTTP) com serialização para JSON, usando o framework Express.js: Considerando que o código acima está num arquivo chamado server.js, pode ser executado com o seguinte comando:

Vídeos recomendados

Fontes consultadas

Continue pesquisando