Остановка потока выполнения после ошибки в экспресс-валидаторе - PullRequest
1 голос
/ 07 января 2012

Я использую express-validator для проверки формы объекта request в Express.Я делаю что-то вроде следующего:

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');

Проблема заключается в том, что поток выполнения продолжается, и он пытается визуализировать один и тот же ресурс дважды при выполнении моего User.create() метода.Он также выдаст Error: Can't use mutable header APIs after sent. из-за попытки двойного рендеринга.

Как я могу предотвратить это?

1 Ответ

1 голос
/ 07 января 2012

см. 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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...