我有注册表并将值发布到注册函数,它将使用 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/