[英]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.