Entendendo o Express: Um Guia Completo com Exemplos
Introdução ao Express
O Express é um framework minimalista e flexível para Node.js que fornece um conjunto robusto de recursos para criar aplicações web e APIs. É conhecido por sua simplicidade e por facilitar a construção de servidores web robustos e eficientes.
1. O que é o Express?
O Express é um framework de servidor web para Node.js que simplifica o desenvolvimento de aplicações web e APIs. Ele fornece uma série de funcionalidades para lidar com roteamento, middleware e outras tarefas comuns em servidores web.
2. Instalando o Express
Para começar a usar o Express, você precisa instalá-lo em seu projeto Node.js. Se ainda não o fez, siga estes passos:
- Navegue até o diretório do seu projeto:
cd seu-projeto
- Instale o Express usando npm:
npm install express
3. Criando um Servidor Básico
Vamos criar um servidor básico com Express. Crie um arquivo chamado server.js e adicione o seguinte código:
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});
Neste exemplo, configuramos um servidor que responde com “Hello World!” quando a rota raiz (/) é acessada.
4. Trabalhando com Roteamento
O roteamento no Express permite definir como o servidor deve responder a diferentes solicitações. Veja alguns exemplos:
4.1. Roteamento Simples
app.get('/about', (req, res) => {
res.send('About Page');
});
4.2. Roteamento com Parâmetros
app.get('/users/:userId', (req, res) => {
const userId = req.params.userId;
res.send(`User ID: ${userId}`);
});
Neste exemplo, :userId é um parâmetro de rota que pode ser acessado usando req.params.userId.
5. Usando Middleware
Middleware são funções que têm acesso ao objeto request (req), ao objeto response (res), e à próxima função middleware no ciclo de solicitação-resposta. Aqui estão alguns exemplos:
5.1. Middleware Global
app.use((req, res, next) => {
console.log(`Request URL: ${req.url}`);
next();
});
Este middleware loga a URL de cada requisição recebida.
5.2. Middleware para Parsing de JSON
app.use(express.json());
Este middleware analisa requisições com payload JSON.
6. Manipulando Dados com Express
Você pode lidar com dados enviados pelo cliente usando métodos do Express.
6.1. Recebendo Dados com req.body
app.post('/submit', (req, res) => {
const data = req.body;
res.send(`Data received: ${JSON.stringify(data)}`);
});
Certifique-se de usar app.use(express.json()) para analisar o corpo da requisição como JSON.
7. Conectando com Bancos de Dados
O Express é frequentemente usado com bancos de dados. Vamos ver um exemplo usando MongoDB com o Mongoose.
7.1. Instalando Dependências
npm install mongoose
7.2. Conectando ao MongoDB
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/mydatabase', {
useNewUrlParser: true,
useUnifiedTopology: true
});
7.3. Criando e Usando um Modelo
const User = mongoose.model('User', new mongoose.Schema({
name: String,
age: Number
}));
app.get('/users', async (req, res) => {
const users = await User.find();
res.json(users);
});
8. Servindo Arquivos Estáticos
Você pode servir arquivos estáticos (como HTML, CSS, JS) com Express.
app.use(express.static('public'));
Coloque seus arquivos estáticos na pasta public e eles estarão acessíveis via URL.
9. Erros e Tratamento de Erros
Você pode definir um middleware de tratamento de erros para capturar e gerenciar erros.
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something broke!');
});
10. Exemplos Avançados
10.1. Rotas Aninhadas
const userRouter = express.Router();
userRouter.get('/', (req, res) => {
res.send('User List');
});
userRouter.get('/:id', (req, res) => {
res.send(`User ${req.params.id}`);
});
app.use('/users', userRouter);
10.2. Aplicações Express Modularizadas
Para aplicações maiores, você pode modularizar seu código em vários arquivos.
Estrutura:
/routes
/users.js
/server.js
routes/users.js:
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
res.send('Users route');
});
module.exports = router;
server.js:
const express = require('express');
const app = express();
const usersRouter = require('./routes/users');
app.use('/users', usersRouter);
app.listen(3000, () => {
console.log('Server running on port 3000');
});
Conclusão
Neste artigo, exploramos o Express em profundidade, desde a instalação e configuração básica até o uso avançado de roteamento, middleware e integração com bancos de dados. O Express é uma ferramenta poderosa para criar aplicações web e APIs rápidas e eficientes.
Recursos Adicionais
Documentação e Tutoriais
Vídeos Recomendados no YouTube
- Duração: 1h 30m
- Descrição: Um curso intensivo sobre Express.js que cobre os fundamentos e algumas funcionalidades avançadas.
- Duração: 1h 50m
- Descrição: Um tutorial detalhado que aborda a construção de aplicações completas com Express e Node.js.
- Duração: 3h 50m
- Descrição: Um curso completo que explora Express e Node.js, ideal para quem busca um entendimento profundo e exemplos práticos.
- Duração: 45m
- Descrição: Um tutorial introdutório que é perfeito para iniciantes que querem começar com Express.js.
- Duração: 1h 20m
- Descrição: Um vídeo que cobre técnicas avançadas de Express.js para otimizar e estruturar melhor suas aplicações.

Leave a comment