在express-validator中的错误之后停止执行stream程

我正在使用express-validator对Express中的request对象进行表单validation。 我做了如下的事情:

 req.onValidationError(function(msg) { res.render('signup', { error: msg }); }); req.check('email', 'Please enter a valid email.').len(1,256).isEmail; req.check('password', 'Your password must be at least 8 characters.').len(8,256); var user = { email: req.body.email, password: req.body.password }; User.create(user, function(err, result) { console.log(err, result); }); res.render('signup'); 

问题是执行stream程继续,并且它执行我的User.create()方法时尝试两次呈现相同的资源。 它也会抛出一个Error: Can't use mutable header APIs after sent. 因为尝试了双重渲染。

我怎样才能防止这种情况发生?

请参阅https://github.com/ctavan/express-validator#readme

 var errors = []; req.onValidationError(function(msg) { //res.render('signup', { error: msg }); errors.push(msg); }); req.check('email', 'Please enter a valid email.').len(1,256).isEmail; req.check('password', 'Your password must be at least 8 characters.').len(8,256); if (errors.length) return res.render('signup', { error: errors.join('\n') }); var user = { email: req.body.email, password: req.body.password }; User.create(user, function(err, result) { console.log(err, result); }); res.render('signup');