簡體   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