我正在使用 express-validator 验证我的表单...如果我有错误,阻止表单提交并返回登录页面的最佳方法是什么。这就是我所拥有的,它有效,只是寻找处理这个问题的最佳方法(不确定返回语句)。
//routes/index.js
exports.login.post = function(req, res){
req.assert('username', 'Please enter username').notEmpty();
req.assert('password', 'Please enter password').notEmpty();
res.locals.errors = req.validationErrors(true);
if ( res.locals.errors ) {
console.log(res.locals.errors);
var d = { title: 'Login' };
res.render('login', { d: d });
return;
}
//do login here if no errors
};
我也不知道如何获取表单模板(ejs)中的原始值。
我尝试将 req.param 传入,但它是空的。
err 对象只有那些有错误的字段,所以如果我输入用户名,但将密码留空,我只会在 err 对象中获得密码,而不是用户名......所以我需要 req.param.username,但是当我通过 { q: req.param} 并使用 <%= inspect(q) %> 它是空的。
更新: req.body 给了我原始的帖子参数来预填充表单。所以你需要 err stack 和 req.body stack 才能有好的体验。