var express = require('express');
var router = express.Router();
router.post("/", function(req, res, next) {
console.log('Yes1');
if(!req.body.username || !req.body.password){
console.log('Yes2');
return res.status(401).json(JSON.stringify({
error: 'Username or Password are not set'
}));
}else{
console.log('Yes3');
return res.status(200).json(JSON.stringify({
data: 'Okay'
}));
}
//error handler
router.use(function(err, req, res, next) {
res.status(500).json(JSON.stringify({
error: err
}));
});
module.exports = router;
從前端發送用戶名和密碼。我期望要麼收到錯誤200或401.出於某種原因,雖然我收到錯誤500,這是默認錯誤處理程序。我不確定它是如何來到這裏的。在我的服務器控制檯上正在打印Yes1和Yes2,爲什麼我沒有收到錯誤401?始終返回500錯誤
@bejado Ahhh我不知道。我的理解是,只有在路由器中傳遞下一個(err)時纔會調用它。刪除它可以解決問題。我將有更復雜的邏輯,我需要在每個路由器中使用「默認」錯誤處理程序,然後爲每個路由器執行此操作嗎? – user2924127