Cursos / Informática para Internet / Desenvolvimento Backend / Aula

arrow_back Aula 05 - Roteamento, Middleware e Validação

Criando Middleware


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.

Criando o middleware

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.

Adicionando o middleware à rota

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