當我發佈表單時,控制檯上出現500錯誤,說:POST/items/sprinkler 500 angular.js:10766
。插入數據後的Mongoose 500錯誤
在我的節點控制檯中,錯誤顯示爲:Error: Failed to lookup view "error" in views directory
。
但我能夠將數據插入到我的數據庫。之後,這不會運行 - exec(function(err, item)
。我如何解決這個問題?
mainapp /路由/ items.js
router.post('/sprinkler', function(req, res) {
Item.create(req.body).exec(function(err, item) {
console.log("printed")
res.json(item)
});
});
我的錯誤處理程序看起來像這樣(從快車本身):
if (app.get('env') === 'development') {
app.use(function(err, req, res, next) {
res.status(err.status || 500);
console.log("message from error handler:")
res.render('error', {
message: err.message,
error: err
});
});
}
您的服務器正在試圖呈現一個錯誤頁面(因爲可能在您的處理程序導致錯誤,也許是一個驗證問題?),但它不能因爲缺少錯誤模板。您應該修復Express應用程序的錯誤處理程序,或者將其刪除,以便它會使服務器出現實際錯誤。 – robertklep
我試着寫這個'if(err)console.log(err); (500); } else { console.log(saved); res.send(saved); '但是它顯示相同。另外我在我的views/500中添加了一個錯誤頁面,但它又顯示了相同的錯誤。 – Deke
該錯誤發生_before_該代碼。我在談論全球Express錯誤處理程序,記錄在這裏(http://expressjs.com/en/guide/error-handling.html)。 – robertklep