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:

  1. Navegue até o diretório do seu projeto:
   cd seu-projeto
  1. 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

  1. Express.js Crash Course
  • Duração: 1h 30m
  • Descrição: Um curso intensivo sobre Express.js que cobre os fundamentos e algumas funcionalidades avançadas.
  1. Learn Express.js with Node.js
  • Duração: 1h 50m
  • Descrição: Um tutorial detalhado que aborda a construção de aplicações completas com Express e Node.js.
  1. Node.js & Express – Full Course
  • 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.
  1. Express.js Tutorial for Beginners
  • Duração: 45m
  • Descrição: Um tutorial introdutório que é perfeito para iniciantes que querem começar com Express.js.
  1. Advanced Express.js Tutorial
  • 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.
Edvaldo Guimrães Filho Avatar

Published by

Categories:

Leave a comment