javascript - 如何纠正node.js验证器中没有方法 'onValidationError'的错误?

标签 javascript node.js validation express

我有注册表并将值发布到注册函数,它将使用 node-validator 验证表单值.

但是,当我尝试使用 Node 验证器时,它不断出现错误,如下所示 类型错误:对象#没有方法“onValidationError”。验证器已安装在我的应用程序中。

app.js

app.post('/register', test.register);

test.js

var check = require('validator').check,
sanitize = require('validator').sanitize;


exports.register = function(req, res){

    var errors = [];
    req.onValidationError(function(msg) {
        //res.render('signup', { error: msg });
        errors.push(msg);
    });
    req.check(req.body.email, 'Please enter a valid email').len(6,64).isEmail();
    req.check(req.body.username, "Username can't be empty!").isNull();

    if (errors.length) 
         return res.render(
            'register', { regErr: errors.join('\n') }
         );
}

如何纠正这个错误?

最佳答案

您正在使用node-validator。您应该使用 express-validator 来处理 onValidationError

来自node-validator页面你可以看到它:

If you are using the express.js framework you can use the express-validator middleware to seamlessly integrate node-validator.

Example http://localhost:8080/?zip=12345&foo=1&textarea=large_string

get('/', function (req, res) {
    req.onValidationError(function (msg) {
        //Redirect the user with error 'msg'
    });

附加说明: app.use 的顺序也很重要。尝试将 app.use(expressValidator); 移至 app.use(app.router); 之上。可以在https://github.com/justin-john/node-user-management/blob/master/app.js#L17-L18中查看app.use的顺序.

关于javascript - 如何纠正node.js验证器中没有方法 'onValidationError'的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15061210/

相关文章:

javascript - 无法修复 post 请求中的 CORS

node.js - Mongoose find() 返回一个空文档

javascript - js中的个人表单验证,带有警告消息

javascript - 单击另一个元素时如何将 onclick 函数设置为默认文本

javascript - 在liferay中为aui窗体添加动态元素

java - javax.validation 的正确位置在哪里

java - Lombok 的 @NonNull 在验证期间干扰 javax.validation.constraints.NotNull

javascript - React Js 和 Node Js 如何使用相同的端口?

mysql - bookshelfJs 中未定义的绑定(bind)错误限制返回的列

regex - 使用正则表达式限制文本字段/数字字段中的输入字符?