Node.js — Do zero ao deploy

Parte 1 — Primeiros passos

André Spanguero Kanayama
Nexa Digital
4 min readDec 13, 2019

--

Recentemente eu e o Rodrigo Botti tivemos o prazer de dar um workshop sobre Node.js no evento Rocketseat Experience 2019. Foi uma experiência muito rica e conseguimos conhecer muita gente que está começando com Node e tem muita vontade de aprender! Nesta série de artigos, vamos fazer um passo a passo do que foi apresentado lá, construindo uma API, desde a criação do projeto até termos um CRUD deployado e funcionando na nuvem.

Rocketseat Experience 2019

Antes de tudo…

Para acompanhar este artigo, assumimos que você está familiarizado com Javascript e Git. Além disso temos alguns pré-requisitos:

  • Node.js instalado — recomendo usar o nvm para fazer a instalação da versão 12 (lts/erbium)
  • Git instalado e configurado na sua máquina
  • Nós sugerimos fortemente o uso do Visual Studio Code

Nós temos um repositório no qual você pode acompanhar o desenvolvimento do projeto como um todo. Se preferir pode começar fazendo uma cópia dele (nós vamos partir da master). Ao final deste artigo, estaremos com o código igual ao da branch step-1.

Primeiros passos

Primeiramente, crie uma pasta vazia para o projeto no caminho que achar mais adequado.
Os primeiros passos para começarmos nosso projeto são abrir o terminal, navegar até a pasta do projeto e executar o seguinte comando:

npm init -y

Este comando vai configurar um projeto node — criar um arquivo package.json — para você com todos os valores default (você pode tirar o -y e mudar algumas informações se desejar).

O próximo passo é criar um arquivo index.js, é nele que vamos começar a colocar o nosso código!

Nossas primeiras rotas

Talvez você já tenha ouvido falar sobre o express, que é o framework mais famoso do Node para construção de aplicações web, porém, na nossa jornada, vamos utilizar o Koa, que faz o mesmo papel do express, — servidor http — mas que é muito mais enxuto.

Dito isso, vamos instalar o koa (o save adicionará o pacote como dependência ao nosso package.json automaticamente):

npm install koa --save

Como eu disse, o koa é muito enxuto, não tendo dentro dele um router que funciona de forma intuitiva como o express, portanto temos que instalar também o koa-router:

npm install koa-router --save

Observação: router é o objeto no qual nós registramos as rotas — método, path, parâmetros — que queremos responder com nossas funções de handlers/controllers — recebem requests http e geram http responses.

Com todas as bibliotecas que precisamos para o nosso “Hello World” instaladas, vamos para o código.

Primeiro importamos as bibliotecas que vamos usar:

importando o koa e o koa-router

Em seguida, inicializamos e atribuímos a variáveis:

instanciando uma aplicação e um router

Vamos agora criar a nossa primeira rota, no “/”:

handler http "index" respondendo no "/"

Observação: diferentemente do express, no koa, os handlers recebem somente um parâmetro chamado de Context. Ele é um objeto que agrupa tanto a request quanto a response — no express um handler recebe-los em parâmetros separados — podemos acessar o objeto de request através de ctx.request e a response através de ctx.response — para facilitar, o context tem alguns aliases para ajudar a escrever menos, por exemplo ctx.body === ctx.response.body.

Note que ainda não falamos para o koa que ele precisa usar o koa-router, então, após “setarmos” as rotas, associamos o router ao koa, e por fim, inicializamos o koa escutando na porta 3000:

Agora podemos rodar a nossa aplicação! Para tal, usamos o seguinte comando no terminal:

node index.js

Se tudo deu certo, você deverá ver a mensagem no terminal

Listening on port 3000

Pronto, agora você pode ir até o seu navegador e acessar http://localhost:3000, e para nossa alegria, a mensagem definida na rota aparecerá na tela!

navegador em http://localhost:3000/

Antes de finalizarmos a primeira parte, vamos adicionar mais duas rotas:

handler "hello" respondendo no "/hello" e "/hello/:name"

Note que agora recebemos o “name” na rota (os “:” antes do name indica que ele é um parâmetro variável) e como vamos reaproveitar a lógica extraímos uma função chamada hello.

Por último, para não deixarmos um número mágico na inicialização do koa, vamos extrair o valor que chumbamos como 3000 para uma variável de ambiente (isso também vai ser útil quando formos utilizar o Heroku):

Agora é só rodar e testar os seus novos endpoints! Experimente trocar o valor de :name por alguma outra palavra e veja ela vindo na resposta da sua requisição. Por exemplo: http://localhost:3000/hello/rodrigo.

No próximo artigo, veremos como fazer o deploy da nossa API de forma gratuita usando uma ferramenta chamada Heroku, deixando-a assim disponível para ser acessada de qualquer lugar. Para acessar, clique aqui.

Código completo

--

--