Introdução ao Express em Node.js
Neste tema, vamos abordar a criação de um servidor utilizando o framework Express. Pode parecer desnecessário usar um framework adicional se já temos o módulo http
no Node.js API. No entanto, o Express utiliza o módulo http
e oferece várias abstrações prontas que facilitam a criação do servidor e a lógica do servidor, como o tratamento de formulários enviados, trabalho com cookies, CORS, etc.
O código-fonte do framework pode ser visualizado no repositório no GitHub em https://github.com/expressjs/express.
Vamos criar um novo diretório para o projeto, que chamaremos de expressapp
. Para armazenar informações sobre todas as dependências do projeto, vamos definir um novo arquivo package.json
neste diretório:
{
"name": "helloapp",
"version": "1.0.0",
"dependencies": {
"express": "^4.19.2"
}
}
Em seguida, navegue até este diretório no prompt de comando/terminal e execute o comando npm install
para adicionar todos os pacotes necessários:
c:\app> npm install added 62 packages, and audited 63 packages in 2s 11 packages are looking for funding run `npm fund` for details found 0 vulnerabilities
Vamos criar um novo arquivo chamado app.js
no diretório do projeto:
// conexão com o express
const express = require("express");
// cria o objeto da aplicação
const app = express();
// define o manipulador para a rota "/"
app.get("/", function (request, response) {
// envia a resposta
response.send("<h2>Olá Express!</h2>");
});
// começa a escutar conexões na porta 3000
app.listen(3000, () => console.log("Servidor iniciado na porta 3000"));
Para usar o Express, primeiro precisamos criar um objeto que representará a aplicação:
const app = express();
Para tratar requisições no Express, existem várias funções integradas, e uma delas é a função app.get()
. Ela trata requisições GET do protocolo HTTP e permite associar rotas a manipuladores específicos. Para isso, o primeiro parâmetro é a rota, e o segundo é o manipulador, que será chamado se a requisição ao servidor corresponder àquela rota:
app.get("/", function (request, response) {
// envia a resposta
response.send("Olá Express!");
});
A rota /
representa a rota raiz.
Para iniciar o servidor, chamamos o método app.listen()
e passamos o número da porta.
Vamos executar o projeto e acessar no navegador pelo endereço http://localhost:3000/
:
É importante notar que o Express se baseia no sistema de rotas, portanto, todas as outras requisições que não corresponderem à rota raiz /
não serão tratadas:
Agora, vamos modificar o arquivo app.js
:
const express = require("express");
const app = express();
app.get("/", function (request, response) {
response.send("<h1>Página Principal</h1>");
});
app.get("/about", function (request, response) {
response.send("<h1>Sobre o Site</h1>");
});
app.get("/contact", function (request, response) {
response.send("<h1>Contatos</h1>");
});
app.listen(3000, () => console.log("Servidor iniciado na porta 3000"));
Agora, a aplicação tem três rotas definidas, que serão tratadas pelo servidor.