Cursos / Informática para Internet / Desenvolvimento Backend / Aula
Nesta aula, você verá como trabalhar com middlewares. Mas o que é um middleware no Express?
O middleware é uma ação que pode ser anexada para executar antes da chamada final de uma rota.
O middleware pode, por exemplo, validar os dados de entrada para garantir que a ação só seja executada com dados válidos. Dessa forma, o código fica mais desacoplado, evitando repetir a lógica de validação nas rotas.
Para criar o middleware de validação dos usuários, crie o arquivo chamado validarUsuario.middleware.js
na pasta /middleware
com o seguinte conteúdo:
const Ajv = require('ajv')
const ajv = new Ajv()
const addFormats = require("ajv-formats")
const usuarioSchema = require('../schema/usuario.schema')
addFormats(ajv)
function validarUsuario(req, res, next){
const usuario = req.body
const validate = ajv.compile(usuarioSchema)
const valid = validate(usuario)
if (valid){
next()
}else{
res.status(400).json({msg: "Dados inválidos", erros: validate.errors})
}
}
module.exports = validarUsuario
Perceba que o middleware nada mais é do que uma função com os parâmetros req
, res
, e next
. No exemplo acima, a requisição é interrompida caso o dado seja inválido e segue adiante caso esteja tudo bem.
Agora que o middleware está pronto, falta indicar nas definições das rotas que queremos utilizá-lo. Para isso, edite o arquivo de rotas do usuário, adicionando o middleware para as rotas POST e PUT, conforme o exemplo abaixo:
const express = require('express')
const router = express.Router()
const { v4: uuidv4 } = require('uuid')
const usuarioMid = require('../middleware/validarUsuario.middleware')
const usuarios = {}
router.post('/', usuarioMid)
router.put('/', usuarioMid)
Não deixe de conferir a videoaula para uma explicação detalhada.
Versão 5.3 - Todos os Direitos reservados