Boas-vindas ao curso de um React e Node.js da Alura! Meu nome é Bernardo Severo e serei seu instrutor ao longo deste curso.
Autodescrição: Tenho 22 anos, sou branco, tenho cabelos curtos castanhos, uso óculos de grau arredondados e estou em um quarto com uma leve iluminação azul ao fundo.
Este curso é ideal para quem deseja se aprofundar em desenvolvimento back-end com JavaScript, mais especificamente com Node.
O Node é uma das ferramentas mais utilizadas no mercado de trabalho atualmente. Existem diversas oportunidades para qualquer senioridade, então, este estudo será de grande ajuda para você se tornar uma pessoa desenvolvedora em breve!
Neste curso, daremos continuidade ao projeto AluraBooks que desenvolvemos no curso anterior. Nosso objetivo é criar uma API de livros, que nos fornecerá informações dos livros que utilizaremos no projeto.
Em resumo, usaremos o Postman para enviar requisições a essa API, para consultar os livros do "banco de dados" do AluraBooks. Além da leitura de dados, também será possível inserir, editar e deletar dados!
Para acompanhar este curso, é ideal que você tenha conhecimento intermediário em JavaScript. Se necessário, você pode buscar outros cursos da Alura voltados especificamente para JavaScript, antes de começar este curso de Node.
Para complementar seus estudos, você pode explorar outros conteúdos da plataforma, como Alura+, artigos e podcasts!
Este é o segundo curso da Formação Full Stack: React e Node.js, logo, também é recomendado que você tenha cursado o primeiro curso para acompanhar seus estudos de maneira linear.
Bons estudos!
No último curso, aprendemos React e trabalhamos no front-end do AluraBooks. Agora, para dar continuidade ao nosso aprendizado, vamos desenvolver o back-end do projeto, desenvolvendo um servidor de dados para o front-end que já está pronto.
Vamos abrir o Visual Studio Code. Mais à esquerda da tela inicial, temos o título "Iniciar" com as seguintes opções:
Vamos clicar em "Abrir". Alternativamente, você pode acessar "Arquivo > Abrir" no menu superior do VS Code ou usar o atalho "Ctrl + O".
Uma janela de seleção de arquivos será aberta. Vamos navegar até o local onde queremos guardar nosso novo projeto e criar uma pasta chamada "alura-books-server". Em seguida, daremos um clique duplo sobre essa pasta recém-criada para abri-la no VS Code.
Primeiramente, vamos realizar as instalações necessárias e criar o projeto nos moldes básicos. No menu superior do VS Code, acessaremos "Terminal > Novo terminal". Alternativamente, você pode usar o atalho "Ctrl + '". O terminal aparecerá na parte inferior da tela.
Anteriormente, já instalamos o Node. Ele nos proporciona o comando npm init
, com o qual inicializaremos um novo pacote Node. Vamos executá-lo:
npm init
Ao rodar o comando, teremos alguns comunicados no terminal. Não vamos nos aprofundar neles, por enquanto.
Na sequência, podemos informar os seguintes dados para o nosso projeto:
Podemos deixar todos os campos vazios (ou com seus valores padrões), basta pressionar "Enter" em cada um deles. Caso queira, você pode preencher os campos de descrição, repositório e autoria.
Ao final, é preciso confirmar os dados, pressionando "Enter" mais uma vez. Finalizado esse processo,surgirá um arquivo chamado package.json
na estrutura do projeto (na lateral esquerda do VS Code). Vamos clicar nele para abri-lo:
{
"name": "alura-books-server",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Bernardo Severo",
"license": "ISC"
}
Trata-se de um arquivo em formato JSON com informações sobre o nosso projeto. Futuramente, também constarão dados sobre as nossas dependências, ou seja, as ferramentas que utilizaremos.
A seguir, vamos instalar uma dependência chamada Express, uma das ferramentas mais usadas no mercado de trabalho para criação de servidores Node.
Para instalá-la, executaremos o seguinte comando no terminal:
npm install express
Finalizada a instalação, notaremos algumas mudanças no projeto. A primeira delas está no arquivo package.json
. Agora, temos o campo dependencies
, onde consta o Express e sua versão:
{
"name": "alura-books-server",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Bernardo Severo",
"license": "ISC",
"dependencies": {
"express": "^4.18.2"
}
}
Esse arquivo serve para armazenar todas as dependências do nosso projeto. Caso alguém entre nesse projeto agora e rode o comando npm install
, o sistema saberá que é necessário instalar o Express também!
A segunda mudança é o surgimento da pasta "node_modules", que está repleta de arquivos. Tudo que o Express precisa de código para funcionar está guardado nessa pasta. Além disso, também temos um novo arquivo chamado package-lock.json
, que guarda informações das dependências.
Tanto a pasta "node_modules" quando o arquivo package-lock.json
serão automaticamente atualizados pelo Node, sempre que instalarmos ou desinstalarmos dependências. Então, não é preciso nos preocupar com eles.
Assim, criamos nosso projeto, demos um nome a ele, geramos o arquivo package.json
e instalamos o Express, a principal dependência do nosso projeto! Nos próximos vídeos, começaremos a criar nossos primeiros códigos.
No último vídeo, criamos a base do projeto, analisamos brevemente o arquivo package.json
e instalamos o Express. A seguir, vamos para uma parte mais prática!
Nosso objetivo inicial é fazer o código mais básico possível para criar nosso primeiro "Olá Mundo".
Na lateral esquerda do VS Code, vamos clicar com o botão direito do mouse na área onde temos a estrutura de pastas do projeto e selecionar "Novo Arquivo" e nomeá-lo "app.js".
No curso anterior, o app.js
foi o arquivo principal do nosso projeto React. Dessa vez, não será diferente — o app.js
será o arquivo principal do nosso projeto Node.
Nesse arquivo, vamos começar importando o Express. Diferentemente do curso de React em que usamos as expressões import
e from
, primeiramente vamos declarar uma constante chamada express
. Nela, chamaremos a função require()
, passando como parâmetro "express":
//app.js
const express = require("express")
Em seguida, vamos criar uma constante chamada app
, que será nossa aplicação Express. Nela, chamaremos a função express()
que importamos na linha anterior, que cria uma aplicação Express:
const express = require("express")
const app = express()
No curso anterior, ao rodar a aplicação React, podíamos acessá-la em localhost:3000
. O número 3000 diz respeito à porta da aplicação na nossa rede, seja local ou em qualquer outro lugar.
Nossa aplicação atual também precisará de uma porta, então vamos informá-la na constante port
. No caso, optaremos pela porta 8000:
const express = require("express")
const app = express()
const port = 8000
Assim, o front-end ficará na porta 3000 e o back-end, na 8000.
A seguir, criaremos nossa primeira rota. De início, vamos simplesmente criá-la e testá-la. Mais adiante, entenderemos em mais detalhes de que se trata o conceito de rota.
Na linha 7, usaremos a função get()
da aplicação, que receberá dois parâmetros. O primeiro parâmetro é o path, ou seja, o caminho para acessar o servidor em determinada página.
Por exemplo, vamos imaginar que acessamos o site alura-books.com/home
ou alura-books.com/livros-favoritos
. Nesses exemplos, o /home
e o /livros-favoritos
são o caminho!
No caso, criaremos o caminho que será simplesmente uma barra (/
):
const express = require("express")
const app = express()
const port = 8000
app.get('/', )
No segundo parâmetro, informaremos uma função com os parâmetros (req, res)
. Não vamos detalhar esses conceitos agora, mas vale saber que req
vem da palavra "request" (requisição), o que recebemos quando uma pessoa chama nosso serviço. Já res
vem da palavra "response" (resposta), o que devolvemos para a pessoa que fez o chamado.
Dentro dessa função, usaremos res.send()
para definir a mensagem "Olá mundo!", que será enviada de volta para a pessoa usuária:
const express = require("express")
const app = express()
const port = 8000
app.get('/', (req, res) => {
res.send("Olá mundo!")
})
Além disso, também é necessário indicar para a aplicação Express que ela deve ficar escutando as mensagens recebidas na porta 8000. Em outras palavras, é como avisar a aplicação: "Fique escutando na porta 8000, pois podem chegar pedidos de pessoas usuárias por lá!".
Portanto, usaremos a função listen()
que, em português, significa "escutar". Como parâmetros, passaremos a porta e uma função com uma mensagem que será exibida no console quando a aplicação começar a escutar:
const express = require('express')
const app = express()
const port = 8000
app.get('/', (req, res) => {
res.send('Olá mundo!')
})
app.listen(port, () => {
console.log(`Escutando a porta ${port}`)
})
Não se preocupe se todos esses conceitos ainda não estiverem muito claros. Na sequência, nós vamos testar esse código e tudo ficará mais fácil de entender.
Vamos salvar nosso progresso ("Ctrl + S") e testar.
No menu superior do VS Code, vamos selecionar "Terminal > Novo Terminal". Para o Node ler o arquivo app.js
, vamos executar o seguinte comando:
node app.js
Ao rodar, receberemos a seguinte mensagem no terminal:
Escutando a porta 8000
Esta é exatamente a mensagem que definimos dentro da função listen()
. Ou seja, quando executamos nosso projeto Node, o método listen()
foi chamado, indicando que a aplicação está ouvindo a porta 8000. A partir de então, tudo que for enviado nessa porta será recebido.
No navegador, vamos acessar a seguinte URL:
localhost:8000
Como resultado, temos uma página com o texto "Olá mundo!". Trata-se da mensagem que definimos na rota anteriormente!
Para nos certificar de que tudo está funcionando, vamos voltar ao código e alterar essa mensagem que definimos na rota. Em vez de "Olá mundo!", colocaremos "Olá mundo da Alura!":
const express = require('express')
const app = express()
const port = 8000
app.get('/', (req, res) => {
res.send('Olá mundo da Alura!')
})
app.listen(port, () => {
console.log(`Escutando a porta ${port}`)
})
Após salvar essa modificação, vamos voltar ao navegador e atualizar a página ("F5"). O texto exibido, porém, continuará sendo "Olá mundo!", ele não será atualizado.
Atualmente, estamos rodando nosso projeto da maneira mais simples possível e não temos a funcionalidade de hot reload, ou seja, a atualização automática do que foi modificado no código.
Para interromper o servidor, vamos pressionar "Ctrl + C" no terminal integrado do VS Code. Em seguida, executaremos o comando de inicialização novamente:
node app.js
Mais uma vez, teremos a mensagem do método listen()
:
Escutando a porta 8000
Agora, vamos voltar ao navegador e atualizar a página de novo. Dessa vez, a frase na tela será atualizada para "Olá mundo da Alura!", como definimos no código.
Reinicializar a aplicação toda vez que o código for alterado para testar pode ser trabalhoso, então vamos recorrer a uma ferramenta chamada Nodemon para nos ajudar nesse processo. Ela permitirá a atualização automática.
Primeiramente, vamos interromper o servidor, pressionando "Ctrl + C" no terminal integrado do VS Code. Em seguida, para instalar o Nodemon, executaremos o seguinte comando:
npm install -g nodemon
Finalizada a instalação, vamos abrir o package.json
. No final do arquivo, constará o Nodemon como uma nova dependência:
{
"name": "alura-books-server",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Bernardo Severo",
"license": "ISC",
"dependencies": {
"express": "^4.18.2",
"nodemon": "^2.0.20"
}
}
Agora, para rodar nossa aplicação, utilizaremos um comando diferente:
nodemon app.js
Voltando ao navegador, nossa aplicação estará exibindo a mensagem "Olá mundo da Alura!". Para checar se a atualização automática está funcionando, modificaremos a mensagem mais uma vez. Dessa vez, colocaremos ""Olá mundo da Alura do Brasil!":
const express = require('express')
const app = express()
const port = 8000
app.get('/', (req, res) => {
res.send('Olá mundo da Alura do Brasil!')
})
app.listen(port, () => {
console.log(`Escutando a porta ${port}`)
})
Após salvar a alteração, voltaremos ao navegador e atualizaremos a página. A mensagem será automaticamente atualizada para "Olá mundo da Alura do Brasil!". O hot reload está funcionando como esperado!
Espero que você esteja gostando do curso até agora!
Diferentemente do front-end em que as alterações são facilmente visualizáveis na tela, o back-end pode não ser tão visível. Mas nós já conseguimos desenvolver nossa primeira aplicação "Olá mundo" com Node!
Nosso código ainda está bem simples. Em resumo, nós:
express()
Até a próxima aula!
O curso Node.js: continue seu projeto full stack criando uma API com Express possui 165 minutos de vídeos, em um total de 40 atividades. Gostou? Conheça nossos outros cursos de Node.JS em Programação, ou leia nossos artigos de Programação.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.