Pessoal, boa noite! Estou realizando o curso de Node.JS e me deparei com uma situação, onde a biblioteca do curso do express-validator está na 2.20.8 e estou utilizando a última versão, com isso ao tentar utilizá-lo gera o erro abaixo:
TypeError: req.assert is not a function
at C:\Dev\Projetos\payfast\controllers\pagamentos.js:11:13
at Layer.handle [as handle_request] (C:\Dev\Projetos\payfast\node_modules\express\lib\router\layer.js:95:
5)
at next (C:\Dev\Projetos\payfast\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (C:\Dev\Projetos\payfast\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (C:\Dev\Projetos\payfast\node_modules\express\lib\router\layer.js:95:
5)
at C:\Dev\Projetos\payfast\node_modules\express\lib\router\index.js:281:22
at Function.process_params (C:\Dev\Projetos\payfast\node_modules\express\lib\router\index.js:335:12)
at next (C:\Dev\Projetos\payfast\node_modules\express\lib\router\index.js:275:10)
at Object.<anonymous> (C:\Dev\Projetos\payfast\node_modules\express-validator\src\middlewares\check.js:23
:13)
Após ler a documentação da API https://express-validator.github.io/docs/index.html, verifiquei que é preciso importa-la de outra forma.
Ajustei meu código e está funcionando, porém não consigo utiliza-lo, conforme orientado no curso no arquivo custom-express.js, onde o express-validator é importado apenas neste arquivo.
custom-express.js
const express = require('express');
const consign = require('consign');
const bodyParser = require('body-parser');
const { check } = require('express-validator');
module.exports = function(){
const app = express();
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());
app.use(check());
consign()
.include('controllers')
.then('persistencia')
.into(app);
return app;
pagamentos.js - Neste arquivo foi necessário re-importar o express-validator
const { check, validationResult } = require('express-validator');
module.exports = function(app) {
app.get('/pagamentos', function(req, res){
console.log('Recebida requisição de teste na porta 3000');
res.send('Req Enviada.OK');
});
app.post('/pagamentos/pagamento', [
check('forma_de_pagamento').notEmpty().withMessage('Forma de Pagamento é obrigatório!'),
check('valor').notEmpty().isFloat().withMessage('Valor é obrigatório e decimal!')
], (req, res) => {
const pagamento = req.body;
const errors = validationResult(req);
if (!errors.isEmpty()) {
console.log('Temos Erros: ', errors);
return res.status(422).json({ errors: errors.array() });
}
Alguém poderia me orientar como fazer?