我似乎無法圍繞如何正確處理錯誤。表達如何處理重定向和消息的錯誤
基本的404,沒有問題(只需設置標題404和渲染'找不到'頁面)。但是讓我們舉個例子吧:
您可以通過id找到一個用戶,但該用戶不存在。我想爲此設置標題狀態爲500.但是,如何將頁面重定向回來(或簡單地指定一個重定向頁面)並設置一個flashmessage?
在大多數教程我經常發現以下幾點:每當發生錯誤
model.SignUp.forge({id: req.params.id}).fetch({withRelated: ['usermeta']}).then(function(user) {
res.render('admin/pages/users/details', {title: 'Signups', error: false, details: user});
}).catch(function(err) {
res.status(500).json({error: true, data: {message: err.message}});
});
你只要抓住問題。我也碰到過這樣有時會:
transporter.sendMail(mailOptions, function(err) {
if(err) {
req.flash('error', 'blablabla');
res.redirect('back');
}
});
在第一種情況下,你返回一個JSON文件,但沒有重定向或渲染。在第二部分中沒有提供任何地位。
你們實施了哪些做法?
一點題外話,集中你所有的錯誤處理成一對夫婦中間件功能也使得它,如果你想了解更多詳細信息,一個更容易改變自己的行爲在開發或測試環境中。 – Paul