Express.js - 将自定义对象添加到 req.session.errors
Express.js - Adding custom object to req.session.errors
我正在使用 express-validators 和 express-session 来处理我的表单。
in index.js :我将错误重定向到 /inscription 作为对象以显示字段上方的错误。效果很好。
router.post('/submit-inscription', function (req, res, next) {
req.check('mail', 'Invalid Mail Address').isEmail();
var errors = req.validationErrors();
if (errors) {
req.session.errors = errors;
req.session.success = false;
res.redirect('/inscription');
}
但是如果没有错误,我会检查输入的邮件是否已经存在于我的mongodb。
如果它已经存在,我想重定向到 /inscription 并出现特殊错误。我可以使用新的会话参数来执行此操作,但我想使用相同的错误会话来执行此操作。
所以我尝试了:
else { // email already used
error = {location: 'body', msg:"Email address already registered", param:'mail', value:''};
errors.push(error);
req.session.errors = errors;
res.redirect('/inscription');
}
我得到的错误是:errors.push 不是函数。我猜是因为错误不是数组而是对象。
所以我的问题是如何将此自定义错误添加到我的 req.session.errors 对象中?
您可以在 errors object
中创建一个新密钥,然后将其分配给 session.error
。
示例:
errors.newSessionKey = error;
req.session.errors = errors;
res.redirect('/inscription');
在与 Sohail 讨论后,非常感谢他,他帮助我发现了从哪里以及如何解决它。
let error = {location: 'body', msg:"Email address already registered", param:'mail', value:''};
req.session.errors = [error];
res.redirect('/inscription');
我正在使用 express-validators 和 express-session 来处理我的表单。
in index.js :我将错误重定向到 /inscription 作为对象以显示字段上方的错误。效果很好。
router.post('/submit-inscription', function (req, res, next) {
req.check('mail', 'Invalid Mail Address').isEmail();
var errors = req.validationErrors();
if (errors) {
req.session.errors = errors;
req.session.success = false;
res.redirect('/inscription');
}
但是如果没有错误,我会检查输入的邮件是否已经存在于我的mongodb。
如果它已经存在,我想重定向到 /inscription 并出现特殊错误。我可以使用新的会话参数来执行此操作,但我想使用相同的错误会话来执行此操作。
所以我尝试了:
else { // email already used
error = {location: 'body', msg:"Email address already registered", param:'mail', value:''};
errors.push(error);
req.session.errors = errors;
res.redirect('/inscription');
}
我得到的错误是:errors.push 不是函数。我猜是因为错误不是数组而是对象。
所以我的问题是如何将此自定义错误添加到我的 req.session.errors 对象中?
您可以在 errors object
中创建一个新密钥,然后将其分配给 session.error
。
示例:
errors.newSessionKey = error;
req.session.errors = errors;
res.redirect('/inscription');
在与 Sohail 讨论后,非常感谢他,他帮助我发现了从哪里以及如何解决它。
let error = {location: 'body', msg:"Email address already registered", param:'mail', value:''};
req.session.errors = [error];
res.redirect('/inscription');