AULA 47
MÓDULO 6
backend Node.js
⏱ 50 min
Express: Rotas e Organização
express.Router() em arquivos separados. Arquitetura em camadas: routes → controllers → services → repositories.
Routerexpress.Routercontrollerservicerepositoryarquitetura em camadas
Express Router
O express.Router() cria mini-aplicações com suas próprias rotas e middlewares. É a forma de organizar código em múltiplos arquivos sem acumular tudo no app.js.
estrutura recomendada
routes/ → controllers/ → services/ → repositories/. Cada camada com responsabilidade única. Rotas só conectam URL a controller. Controller só orquestra. Service tem regras de negócio.Parâmetros e validação
Express provê req.params, req.query e req.body. Valide sempre antes de usar — com Zod, Joi ou validação manual.
param injection
Sempre valide e sanitize parâmetros antes de usar em queries ou lógica. Um id como "DROP TABLE users" deve ser detectado antes de chegar ao banco.
javascript
// routes/users.js — Router separado const router = require('express').Router() const { listUsers, getUser, createUser, updateUser, deleteUser } = require('../controllers/usersController') const { authenticate, requireRole } = require('../middlewares/auth') router.get('/', authenticate, listUsers) router.get('/:id', authenticate, getUser) router.post('/', authenticate, createUser) router.patch('/:id', authenticate, updateUser) router.delete('/:id', authenticate, requireRole('admin'), deleteUser) module.exports = router // app.js — montando os routers const usersRouter = require('./routes/users') const ordersRouter = require('./routes/orders') app.use('/api/v1/users', usersRouter) app.use('/api/v1/orders', ordersRouter)
quiz · aula 47
Teste seus conhecimentos
0/3 respondidas
QUESTÃO 01
Para que serve o express.Router()?
QUESTÃO 02
Em uma arquitetura em camadas, qual é o papel do Controller?
QUESTÃO 03
Onde fica a regra de negócio em uma arquitetura em camadas?
0/3