Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro no Express-Validator

Ao tentar utilizado o express validator me deparei com o seguinte erro: TypeError: req.validationsErrors is not a function at D:\casadocodigo\app\routes\produtos.js:33:25 at Layer.handle [as handle_request] (D:\casadocodigo\node_modules\express\lib\router\layer.js:95:5) at next (D:\casadocodigo\node_modules\express\lib\router\route.js:137:13) at Route.dispatch (D:\casadocodigo\node_modules\express\lib\router\route.js:112:3) at Layer.handle [as handle_request] (D:\casadocodigo\node_modules\express\lib\router\layer.js:95:5) at D:\casadocodigo\node_modules\express\lib\router\index.js:281:22 at Function.process_params (D:\casadocodigo\node_modules\express\lib\router\index.js:335:12) at next (D:\casadocodigo\node_modules\express\lib\router\index.js:275:10) at D:\casadocodigo\node_modules\express-validator\lib\express_validator.js:445:5 at Layer.handle [as handle_request] (D:\casadocodigo\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (D:\casadocodigo\node_modules\express\lib\router\index.js:317:13) at D:\casadocodigo\node_modules\express\lib\router\index.js:284:7 at Function.process_params (D:\casadocodigo\node_modules\express\lib\router\index.js:335:12) at next (D:\casadocodigo\node_modules\express\lib\router\index.js:275:10) at jsonParser (D:\casadocodigo\node_modules\body-parser\lib\types\json.js:94:7) at Layer.handle [as handle_request] (D:\casadocodigo\node_modules\express\lib\router\layer.js:95:5)

segue o código do produto.js


module.exports = function (app) {


    app.get('/produtos' , function listaProdutos(req, res) {
        var connection = app.infra.connectionFactory();
        var produtosDAO = new app.infra.ProdutosDAO(connection);

        produtosDAO.lista(function (erros, resultados) {
            res.format({
               html: function () {
                   res.render('produtos/lista',{lista : resultados});
               },
               json: function () {
                   res.json(resultados);
               }
            });

        });
        connection.end();
    });


    app.get('/produtos/form', function (req,res) {
        res.render('produtos/form');
    });

    app.post('/produtos', function (req,res) {
        var produto = req.body;
        var validatorTitulo = req.assert('titulo','Titulo é obrigatório');
        validatorTitulo.notEmpty();

        var erros = req.validationsErrors();
        if(erros){
            res.render('/produtos/form');
            return;
        }

        var connection = app.infra.connectionFactory();
        var produtosDAO = new app.infra.ProdutosDAO(connection);

        produtosDAO.salva(produto, function (erros,resultados) {
            res.redirect('/produtos');
        });

    });
}

fiz a instalação como demonstrado no vídeo inclusive sem o "--save"

segue o códio do express.js

var express = require('express');
var load = require('express-load');
var bodyParser = require('body-parser');
var expressValidator = require('express-validator');



module.exports = function () {

    var app = express();

    app.set('view engine', 'ejs');
    app.set('views','./app/views');

    app.use(bodyParser.urlencoded({extended : true}));
    app.use(bodyParser.json());
    app.use(expressValidator());

    load('routes', {cwd : 'app'})
        .then('infra')
        .into(app);
    return app;
}

gostaria de saber se seria possível me auxiliar quanto a esse erro.

2 respostas

o nome da função é validationErrors :).

solução!

No seu arquivo produtos.js você escreveu:

var erros = req.validationsErrors();

O correto é:

var erros = req.validationErros();

sem o s.