Quando estamos desenvolvendo alguma aplicação, as vezes precisamos desenvolver soluções que outras pessoas já tiveram que desenvolver. E não queremos refazer a roda, até porque ela já existe e já foi validada anos e anos. Então com isso pegam...
O que é NPM? Do que vive? Pra que serve? Onde habita? | |||||||||||
Quando estamos desenvolvendo alguma aplicação, as vezes precisamos desenvolver soluções que outras pessoas já tiveram que desenvolver. E não queremos refazer a roda, até porque ela já existe e já foi validada anos e anos. Então com isso pegamos a roda que já existe e fazemos algumas adaptações para que ela cumpra o seu dever na nossa aplicação. O NPM funciona de forma parecida, ele é um gerenciador de pacotes de soluções gerais que pode ser utilizado para uma infinidade de aplicações, daí utilizamos uma solução já validada para resolver nossos problemas. Claro que o NPM é muito mais que isso, mas a principal função dele é essa. | |||||||||||
Caso você já tinha instalado o Node, o npm já está incluso. Para checar se ele realmente está instalado acesse o seu terminal e digite: | |||||||||||
| |||||||||||
Deverá aparecer algo como: | |||||||||||
| |||||||||||
O que é o ExpressJS? O mais queridinho da galera do NodeJS | |||||||||||
Antes de explicar o ExpressJS, preciso dar uma palavrinha sobre o que é um framework, claro que a definição de framework que eu vou dar aqui é muito mais complexa, teórica do que eu vou falar, mas eu gosto de prática. Então pense no seguinte, framework é nada mais nada menos que um pacote um pouco mais turbinado. Mas o que quer dizer esse turbinado? Então, existem pacotes que lidam com coisas mais simples e isoladas como; validar cpf/cnpj, e outras que são um apanhado de soluções para um determinado problema. O ExpressJS por exemplo é um framework que visa resolver e abstrair várias soluções para aplicações web, e assim facilitando nosso desenvolvimento. | |||||||||||
Antes de instalar o ExpressJS no nosso projeto, precisamos iniciar ele. Então crie uma pasta do seu projeto e digite: | |||||||||||
| |||||||||||
Com isso foi criado o arquivo: package.json, e vamos entender o que ele representa. Falando bem por cima ele é o arquivo que indica para o NPM os pacotes instalados naquele projeto. | |||||||||||
Então já com o npm iniciado, vamos para o próximo passo. Que é instalar o pacote do ExpressJS, nosso framework. Para instalar qualquer pacote no npm, devemos utilizar o comando npm install seguido do nome do pacote. Como no comando abaixo para instalação do Express. | |||||||||||
| |||||||||||
Com isso foram gerado 1 arquivo novo, package-lock.json que não vamos ver por agora, 1 pasta que é o node_modules onde nosso pacote se encontra, e se vocês abrirem o package.json vão ver que foi criado uma nova dependência, que deixa explicito para o npm que nosso projeto precisa do pacote express para funcionar corretamente. | |||||||||||
É comum e correto em projetos nodeJS, não enviamos a pasta node_modules para o git, pois todo mundo ao baixar um projeto deveria dar um npm install para que possa ser instalado as dependências daquele projeto. Então para não enviar esse node_modules para o git, devemos criar um arquivo chamada .gitignore na pasta do nosso projeto com o seguinte conteúdo: | |||||||||||
Com isso vamos iniciar nossa primeira rotinha, então vamos copiar e colar o seguinte código em um arquivo chamado index.js. | |||||||||||
| |||||||||||
E para executamos esse código necessitamos de executar o código no terminal, node seguido do nome do arquivo. Ficando como no exemplo abaixo: | |||||||||||
| |||||||||||
Com isso podemos abrir o Postman, e testar nossa rota GET /. | |||||||||||
| |||||||||||
Toda vez que tiver alguma alteração você precisa ir no terminal, derrubar o código e subir uma nova versão. Mas será que vai ser sempre assim? DEUS ME FREE. Vamos para o próximo capitulo. | |||||||||||
Nodemon | |||||||||||
O nodemon veio justamente para resolver esse problema de a cada modificação ter que subir uma nova versão do código no terminal. O que ele faz é ficar escutando sua aplicação e a cada modificação ele sobe um código novo de forma automática. | |||||||||||
Mas a diferença é que nodemon precisamos instalar como pacote global, ou seja de uso de sistema operacional. Para fazer isso utilizamos o argumento -g na hora do npm install. Como no comando a abaixo: | |||||||||||
| |||||||||||
Agora para executar nossa aplicação trocamos node por nodemon, como abaixo: | |||||||||||
| |||||||||||
Feito, agora podemos trabalhar mais tranquilo. | |||||||||||
Vamos trabalhar com as rotas do ExpressJS agora? | |||||||||||
Douglinhas, na aula passada disse um pouco sobre GET, POST, PUT, DELETE. Agora vamos entender como o Express define essa rotas, que é muito simples. É app + seguindo de qual método queremos utilizar + path da rota + uma função callback, não se apegue a esses termos agora. Vamos ver isso na prática e esse conceitos vão ficando mais claros com o tempo. | |||||||||||
Por exemplo, se queremos uma rota chamada GET /curso que retorne uma string escrita: "Essa é a rota do curso". Faremos o seguinte: | |||||||||||
| |||||||||||
Mas e se eu quiser pegar informações de qual curso é? Simples utilizamos params do próprio express. Ele é definido por dois pontos (:) e seguido do nome do parâmetro. E pra acessar utilizamos req + params + nome do parâmetro. | |||||||||||
Como por exemplo: | |||||||||||
| |||||||||||
E pode acontecer de as vezes a gente precisar passar alguns parâmetros opcionais, com isso utilizamos as Query Params. O conceito é parecido, mas ela não fica implícita no path, e sim na hora da chamada. Ela é representada de ?nomeDaVariavel=valorDaVariavel no final da URL. E é acessado por req.query. | |||||||||||
| |||||||||||
Baaah, tchê. Parece a mesma coisa na declaração, né? Correto! Mas na hora de chamar é diferente. Repare no ?page=1 ali no final da url do Postman. | |||||||||||
Já passamos pelo params, query params e agora vamos pro último os principais. O Body, mas não existe BODY no GET. Na verdade até tem como, mas não é boa prática. Só que antes de iniciamos com o body, temos que instalar um novo pacote chamado body-parser . Não vou entrar nos detalhes do pacote, mas ele é necessário para converter o body. Para instalar digite: | |||||||||||
| |||||||||||
E para iniciar ele no nosso projeto devemos fazer o seguinte, novamente peço que não se apegue ao app.use, pois futuramente devemos entrar mais afundo em middleware e etc. | |||||||||||
| |||||||||||
Agora vamos supor que queremos cadastrar um novo usuário, e para isso precisamos receber a informação do usuário. Então passaremos, nome, idade e e-mail pelo body. O código ficaria dessa forma: | |||||||||||
| |||||||||||
E o Postman fica algo parecido com isso: | |||||||||||
Chegamos ao final dessa aula com muita informação, hehehehe. Desculpa pessoa! | |||||||||||
Vamos a um pequeno desafio: | |||||||||||
Quero uma rota POST que receba informações de um usuário como, nome, idade. E verifique se ele é maior de 18 anos, se for retorna "[Nome do usuário] está liberado", se for menor retorne "[Nome do usuário] está negado". |