繁体   English   中英

Express.js - 向 req.session.errors 添加自定义对象

[英]Express.js - Adding custom object to req.session.errors

我正在使用 express-validators 和 express-session 来处理我的表单。

在 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 对象中?

与Sohail讨论后,非常感谢他,他帮助我发现了从哪里以及如何解决它。

let error = {location: 'body', msg:"Email address already registered", param:'mail', value:''};
req.session.errors = [error];
res.redirect('/inscription');

您可以在errors object创建一个新键,然后将其分配给session.error

例子:

errors.newSessionKey = error;
req.session.errors = errors;
res.redirect('/inscription');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM