Domine o Node.js: Do Básico ao Desenvolvimento de Servidores

Node.js é uma tecnologia que revolucionou o uso de JavaScript, expandindo suas possibilidades para além do navegador. Antes dela, o JavaScriptIntrodução ao JavaScript e Configuração do AmbienteIntrodução ao JavaScript e Configuração do AmbienteDescubra neste tutorial narrativo como configurar seu ambiente de desenvolvimento e começar a programar em JavaScript de maneira prática e eficiente. era utilizado predominantemente para interações no Front-End. Com o Node.js, passamos a rodar aplicações JavaScriptIntrodução ao JavaScript e Configuração do AmbienteIntrodução ao JavaScript e Configuração do AmbienteDescubra neste tutorial narrativo como configurar seu ambiente de desenvolvimento e começar a programar em JavaScript de maneira prática e eficiente. diretamente no servidor, abrindo portas para uma infinidade de projetos, desde ferramentas de linha de comando até serviços de alto desempenhoDebugging e Ferramentas de Desenvolvimento do NavegadorDebugging e Ferramentas de Desenvolvimento do NavegadorAprenda a depurar código JavaScript com as Ferramentas do Navegador. Use console, breakpoints e debugger para solucionar bugs de forma prática..

Neste tutorial, faremos uma imersão ao mundo do Node.js, entendendo a motivação por trás do seu surgimento, como instalar, configurar e criar um servidor básico. Além disso, exploraremos brevemente as ferramentas e bibliotecas que veremos com mais profundidade no decorrer de nossos estudos de desenvolvimento web.

Por que Node.js?🔗

Em essência, o Node.js é um runtime JavaScriptIntrodução ao JavaScript e Configuração do AmbienteIntrodução ao JavaScript e Configuração do AmbienteDescubra neste tutorial narrativo como configurar seu ambiente de desenvolvimento e começar a programar em JavaScript de maneira prática e eficiente. construído sobre o motor de alto desempenhoDebugging e Ferramentas de Desenvolvimento do NavegadorDebugging e Ferramentas de Desenvolvimento do NavegadorAprenda a depurar código JavaScript com as Ferramentas do Navegador. Use console, breakpoints e debugger para solucionar bugs de forma prática. V8, desenvolvido pela Google. Com a adoção do V8, o JavaScriptIntrodução ao JavaScript e Configuração do AmbienteIntrodução ao JavaScript e Configuração do AmbienteDescubra neste tutorial narrativo como configurar seu ambiente de desenvolvimento e começar a programar em JavaScript de maneira prática e eficiente. executa de maneira extremamente rápida, pois o código é compilado (e não apenas interpretado) em linguagem de máquina, oferecendo desempenhoDebugging e Ferramentas de Desenvolvimento do NavegadorDebugging e Ferramentas de Desenvolvimento do NavegadorAprenda a depurar código JavaScript com as Ferramentas do Navegador. Use console, breakpoints e debugger para solucionar bugs de forma prática. comparável a outros ambientes consolidados.

A principal vantagem do Node.js é executar JavaScriptIntrodução ao JavaScript e Configuração do AmbienteIntrodução ao JavaScript e Configuração do AmbienteDescubra neste tutorial narrativo como configurar seu ambiente de desenvolvimento e começar a programar em JavaScript de maneira prática e eficiente. no servidor, possibilitando o Back-End e todo o ecossistema de servidores, APIs e ferramentas sem sair do universo JavaScriptIntrodução ao JavaScript e Configuração do AmbienteIntrodução ao JavaScript e Configuração do AmbienteDescubra neste tutorial narrativo como configurar seu ambiente de desenvolvimento e começar a programar em JavaScript de maneira prática e eficiente.. Além disso, o Node.js possui:

Instalando e Verificando a Versão do Node.js🔗

Para trabalhar com Node.js, precisamos instalá-lo em nosso sistema. Acesse o site oficial do Node.js, geralmente indicada para maior estabilidade.

Verificando a Instalação

Depois de instalar, abra o Terminal ou Prompt de Comando e digite:

node -v

Se tudo estiver certo, você verá algo como:

v16.17.0

Isso indica que o Node.js está corretamente instalado em sua máquina. Também podemos conferir a versão do NPM:

npm -v

O retornoFunções e Escopo no JavaScriptFunções e Escopo no JavaScriptAprenda a utilizar funções e escopos em JavaScript com nosso guia prático. Melhore sua organização de código e evolua seus projetos com boas práticas. será a versão do Node Package Manager instalada, por exemplo:

8.15.0

Principais Componentes do Ambiente Node.js🔗

Para quem está acostumado com JavaScript apenas no navegador, é importante!important e Boas Práticas!important e Boas PráticasDescubra como o !important afeta a cascata do CSS e aprenda boas práticas para evitar conflitos, facilitando a manutenção e depuração do código. notar algumas diferenças do ambiente Node.js:

AmbienteBrowserNode.js
Acesso ao DOMPossui acesso à árvore de elementos (DOM).Não possui DOM (focado em execução de scripts no servidor).
APIs nativasfetch, localStorage, document, etc.Módulos nativos de I/O em disco, rede, http, fs, path, etc.
EscopoGeralmente “isolado” por página.Tudo é “módulo”. Cada arquivo .js é um módulo independente.
FerramentasDevTools do NavegadorCLI do Node e depuradores específicos.

No Node.js, quem cuida da execução do JavaScriptIntrodução ao JavaScript e Configuração do AmbienteIntrodução ao JavaScript e Configuração do AmbienteDescubra neste tutorial narrativo como configurar seu ambiente de desenvolvimento e começar a programar em JavaScript de maneira prática e eficiente. é o motor V8, da Google. A interação com o sistema de arquivos, rede e outras operações acontece por meio dos módulosTratamento de Módulos e BundlersTratamento de Módulos e BundlersDescubra como módulos e bundlers revolucionaram o desenvolvimento JavaScript, promovendo organização, performance e escalabilidade em aplicações modernas. nativos do Node.js. São eles que permitem criar, por exemplo, um servidor HTTP do zero.

NPM e Gerenciadores de Pacotes🔗

Uma das principais razões para a popularidade do Node.js é o NPM (Node Package Manager). Trata-se de uma ferramenta que facilita a instalação, remoção e atualização de pacotes de terceiros. Cada pacote geralmente resolve problemas comuns de desenvolvimento, como manipulação de strings, parsers de Markdown ou até construção de servidores completos.

Por padrão, o NPM já vem instalado junto com o Node.js. Outras opções populares, como o Yarn, fornecem funcionalidades semelhantes. Contudo, o NPM continua sendo o gerenciador mais difundido.

Iniciando um Projeto com NPM

Para criar um arquivo package.json em um diretório de projeto vazio e descrever suas dependências, scripts e configurações, podemos usar:

npm init

O NPM solicitará várias informações, como nome do projeto e versão. Ao final, um arquivo package.json será gerado.

Dica: Caso prefira respostas padrão, use npm init -y para criar o package.json automaticamente, sem prompts.

Criando Seu Primeiro Servidor HTTP🔗

Uma das vantagens do Node.js é a capacidade de criar servidores de forma simples, usando o móduloTratamento de Módulos e BundlersTratamento de Módulos e BundlersDescubra como módulos e bundlers revolucionaram o desenvolvimento JavaScript, promovendo organização, performance e escalabilidade em aplicações modernas. nativo http. Esse módulo oferece métodosClasses e Herança em ES6+Classes e Herança em ES6+Aprenda a dominar classes e herança em ES6+: escreva códigos JavaScript claros e eficientes com métodos, getters e setters. para subir um servidor e processar requisições de rede.

Vamos ao exemplo básico de um servidor que responde “Hello World!”:

// arquivo: server.js
const http = require('http');
// Criação do servidor, definição de requisição e resposta
const server = http.createServer((request, response) => {
  response.writeHead(200, { 'Content-Type': 'text/plain' });
  response.end('Hello World! Bem-vindo(a) ao meu primeiro servidor Node.js');
});
// Definindo a porta e iniciando o servidor
const port = 3000;
server.listen(port, () => {
  console.log(`Servidor rodando em http://localhost:${port}`);
});

Para executar:

node server.js

Agora, abra o navegador em http://localhost:3000. Você verá a mensagem Hello World! retornada pelo servidor que criamos. Esse é o princípio básico de como o Node.js gerencia requisições HTTP com seu móduloTratamento de Módulos e BundlersTratamento de Módulos e BundlersDescubra como módulos e bundlers revolucionaram o desenvolvimento JavaScript, promovendo organização, performance e escalabilidade em aplicações modernas. interno.

Ferramentas Complementares🔗

Além do http nativo, existem muitas bibliotecas e utilitários usados no desenvolvimento de aplicações e ferramentas em Node.js. A seguir, alguns exemplos de extensões e packages que fazem parte do dia a dia de desenvolvedores em seus projetos Node.JS:

  • Nodemon: Roda a aplicação e reinicia automaticamente sempre que detecta alterações nos arquivos.

Instalação e uso:

npm install --save-dev nodemon
npx nodemon server.js

Dessa forma, sempre que o código forEstruturas de Controle: if, switch e loopsEstruturas de Controle: if, switch e loopsAprenda as estruturas de controle em JavaScript, como if/else, switch e loops, com exemplos claros e didáticos para otimizar seu código e lógica de programação. modificado, o Nodemon reinicia o servidor.

Boas Práticas de Organização🔗

Quando começamos a mexer com Node.js, é comum que o projeto cresça e, em pouco tempo, dezenas de arquivos e pastas surgem. Para evitar confusões, seguem algumas práticas úteis:

1. Estruture MódulosTratamento de Módulos e BundlersTratamento de Módulos e BundlersDescubra como módulos e bundlers revolucionaram o desenvolvimento JavaScript, promovendo organização, performance e escalabilidade em aplicações modernas.: Em vez de colocar muitas funçõesFunções e Escopo no JavaScriptFunções e Escopo no JavaScriptAprenda a utilizar funções e escopos em JavaScript com nosso guia prático. Melhore sua organização de código e evolua seus projetos com boas práticas. em um único arquivo, separe responsabilidades em múltiplos arquivos e use module.exports / require (ou import/export, caso use módulos ES6Tratamento de Módulos e BundlersTratamento de Módulos e BundlersDescubra como módulos e bundlers revolucionaram o desenvolvimento JavaScript, promovendo organização, performance e escalabilidade em aplicações modernas.) para organizar o código.

2. Mantenha Scripts de Inicialização: No package.json, defina scripts como "start": "node server.js" ou "dev": "nodemon server.js". Assim, o time todo sabe como iniciar a aplicação.

3. Use Arquivos de Configuração: Informações como portas, URLs de banco de dados e outras variáveis de ambiente devem ser isoladas em arquivos de configuração ou variáveisPré-processadores (SASS/SCSS): Variáveis, Mixins, NestingPré-processadores (SASS/SCSS): Variáveis, Mixins, NestingAprenda a manter seu CSS de forma otimizada com SASS/SCSS utilizando variáveis, mixins e nesting para um código limpo e produtivo. de ambiente, evitando exposição de dados sensíveis.

4. Documente: É fácil se perder em um projeto Node quando não há documentação. Mantenha um README.md ou notas explicando a arquitetura básica do sistema, dependências principais e scripts.

Depuração e Logs🔗

DepurarDebugging e Ferramentas de Desenvolvimento do NavegadorDebugging e Ferramentas de Desenvolvimento do NavegadorAprenda a depurar código JavaScript com as Ferramentas do Navegador. Use console, breakpoints e debugger para solucionar bugs de forma prática. aplicações em Node.js pode ser feito de várias formas:

Uma prática recomendada é utilizar bibliotecas de logging como [Winston](https://github.com/winstonjs/winston) ou Pino e geração de arquivos de log.

Explorando Além🔗

O Node.js, além de servir aplicações em Back-End, oferece infraestrutura para construção de ferramentas diversas, como:

Esse ecossistema amplo permite que desenvolvedores JavaScriptIntrodução ao JavaScript e Configuração do AmbienteIntrodução ao JavaScript e Configuração do AmbienteDescubra neste tutorial narrativo como configurar seu ambiente de desenvolvimento e começar a programar em JavaScript de maneira prática e eficiente. lidem tanto com as interfaces de usuário quanto com servidores e sistemas de automação, tudo com uma única linguagem.

Conclusão🔗

Node.js trouxe uma nova forma de encarar o desenvolvimento em JavaScriptIntrodução ao JavaScript e Configuração do AmbienteIntrodução ao JavaScript e Configuração do AmbienteDescubra neste tutorial narrativo como configurar seu ambiente de desenvolvimento e começar a programar em JavaScript de maneira prática e eficiente., unificando as linguagens de Front-End e Back-End e permitindo a criação de aplicações completas em um único ecossistema. Entender como o Node.js funciona, como instalar, manipular pacotes, criar um servidor HTTP básico e organizar projetos são os primeiros passos para aproveitar todo o potencial desta plataforma.

A partir daqui, você já possui a base para experimentar bibliotecas, criar ferramentas e, principalmente, evoluir em novos projetos. Aproveite o ecossistema, teste diferentes pacotes e pratique a manipulação de módulosTratamento de Módulos e BundlersTratamento de Módulos e BundlersDescubra como módulos e bundlers revolucionaram o desenvolvimento JavaScript, promovendo organização, performance e escalabilidade em aplicações modernas. para estruturar seu código de forma clara e robusta. Dessa maneira, o aprendizado fluirá e abrirá portas para construir desde simples scripts até aplicações web escaláveis.

Boas práticasCobertura de Testes e Práticas de QualidadeCobertura de Testes e Práticas de QualidadeDescubra como a cobertura de testes assegura qualidade e confiabilidade em projetos JavaScript. Aprenda a aplicar métricas e ferramentas essenciais. de desenvolvimento em Node.js são fundamentais no seu avanço como desenvolvedor profissional. Continue explorando, pois este é apenas o primeiro passo em um vasto universo de possibilidades que o Node.js proporciona!

Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.

Referências🔗

Compartilhar artigo

Artigos Relacionados