Começando a desenvolver com o Node.js

Giuliana Bezerra
Desenvolvimento com Node.js
5 min readMay 30, 2019

Uma das primeiras coisas que precisamos escolher ao iniciar o desenvolvimento de um projeto web é o servidor que será utilizado. E essa escolha depende, dentre outros fatores, da linguagem de programação que será adotada. Quando essa linguagem é o Javascript, o Node.js é uma escolha bem comum.

O Node.js é um container web de execução de código Javascript. Ele é usado para desenvolvermos projetos com Javascript e disponibilizarmos os mesmos na web.

Mas então, como o Node.js funciona? Vamos esclarecer isso através da prática.

Pré requisitos

É importante que o leitor possua conhecimento na linguagem Javascript, pois iremos implementar código Javascript para o Node.js executar. Além disso, se você nunca utilizou um container web, recomendo essa leitura antes de prosseguir.

Instalação

A instalação é bem simples. Se você estiver no Windows, basta baixar o instalador no site oficial e executá-lo. Caso você esteja no Linux, como eu, pode utilizar um gerenciador de pacotes de acordo com a sua distribuição. Como eu uso o Ubuntu, precisei rodar apenas o seguinte comando:

$ curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
$ sudo apt-get install -y nodejs
$ npm -v
6.14.13

$ node -v
v14.17.1

Alô, mundo

Vamos começar com o exemplo mais básico de desenvolvimento. Para isso, utilize o seu editor de texto favorito (o meu é o Visual Studio Code) e crie um diretório chamado alomundo contendo um arquivo chamado index.js:

O arquivo index.js é um arquivo que contém um código Javascript (extensão .js). O Node.js será capaz de executar esse código através do seguinte comando (digite no terminal de sua preferência):

$ node index.jsAlô, mundo!

O que aconteceu? O Node executou o código Javascript no lado do servidor (na sua máquina, nesse caso). Esse detalhe é importante pois ao codificar no Node, você não poderá utilizar variáveis e funções que existem no lado do cliente (nos navegadores). Para mostrar isso na prática, vamos modificar o código do index.js adicionando um simples alert:

O resultado da execução será:

$ node index.jsReferenceError: alert is not defined

Esse mesmo código executaria em um navegador web pois a função alert existe no contexto do cliente, mas não no servidor Node.js.

💡 Nesse link, é possível verificar as features da linguagem Javascript suportadas em cada versão do Node.js.

Configuração do Servidor

No exemplo anterior, executamos um código Javascript com o Node.js mas não configuramos essa execução em um servidor. Por isso, o código foi executado e a sua execução no Node.js finalizada. Se quisermos disponibilizar operações na web de forma contínua precisamos configurar um servidor Node.js. Para realizar essa configuração, vamos começar criando um arquivo chamado server.js na raiz do projeto:

Agora precisamos criar o servidor de fato. Poderíamos realizar a nossa própria implementação de um servidor HTTP, mas é bem mais simples utilizar uma implementação existente, concorda? Isso é feito através do uso de módulos.

Módulos no Node.js são um conjunto de operações e dados que podem ser utilizados por outras aplicações.

Felizmente o Node.js já disponibiliza por padrão um módulo http que permite criar um servidor. Os módulos no Node.js podem ser utilizados através da função require, que recebe como parâmetro o nome do módulo. Como nós queremos utilizar o módulo http, o código implementado será:

💡 Utilizando módulos podemos empacotar operações e utilizar as mesmas nos nossos projetos, promovendo assim o reuso de código e facilitando o desenvolvimento. Afinal, é bem mais simples utilizar um módulo já desenvolvido e testado para um propósito específico do que criar esse código do zero no seu projeto, não é mesmo?

Nas versões mais novas do Node.js, podemos utilizar os módulos com a sintaxe do ES6 e deixar o nosso código aderente as versões mais novas do javascript. Para isso, vamos utilizar o import ao invés do require:

A constante http vai conter todas as operações declaradas no módulo. Vamos utilizar então a operação que cria um servidor:

Tudo quase pronto, mas está faltando um detalhe. Se você já trabalhou com servidores como o Jboss e Tomcat, sabe que todos eles ouvem requisições em uma porta específica. Precisamos informar essa porta para o servidor, e isso é feito através da função listen:

Agora sim! O servidor vai executar na porta 3000 e atender as requisições HTTP que chegarem nessa porta. Mas o que o servidor vai fazer quando receber uma requisição? Precisamos implementar essa lógica também, caso contrário, quando um cliente tentar acessar o servidor, nada será retornado por ele. Vamos então retornar um código HTML para o cliente. Para isso, vamos adicionar uma função como parâmetro da função createServer. Essa função recebe como argumento a requisição e a resposta da chamada HTTP. Para retornar um código HTML, vamos utilizar a resposta e sua função end:

A função end recebe como parâmetro o HTML que será retornado pelo servidor quando o cliente acessar o endereço e porta configurados.

Inicie o servidor novamente (comando node server.js) e abra no navegador o endereço http://localhost:3000:

Conclusão

Nesse post vimos como é possível iniciar o desenvolvimento de um projeto Javascript com o Node.js. Em posts futuros, iremos explorar outras funcionalidades mais avançadas dessa tecnologia.

Se você gosta do meu conteúdo, não deixe de conferir o meu canal do Youtube, onde falo sobre desenvolvimento de software. Espero te ver por lá! 😉

Referências

--

--

Giuliana Bezerra
Desenvolvimento com Node.js

Solution Architect — Online Instructor — Youtuber at @giulianabezerra — Writer