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