2
我一直試圖通過所有的答案已經這樣做,但沒有實現他們到我的代碼。我明白髮生了什麼事情之前,我提供了錯誤響應的頁面,另一個響應已發送給用戶。另一方面,我不知道如何解決這個問題。錯誤:它們發送後無法設置標頭 - Node.js
這裏是我在我的腳本拋出一個錯誤:
if (!player) {
next(new HttpError(404, "Player not found")); // HttpError(status, message)
}
要發送此錯誤給用戶我用的方法sendHttpError.js這是這樣的:
module.exports = function(req, res, next){
res.sendHttpError = function(error){
if(res.req.headers['x-requested-with'] == 'XMLHttpRequest'){
res.json(error);
}else {
res.render("error", {error: error});
}
};
next();
};
這是一個點點增強表達錯誤處理:
app.use(function (err, req, res, next) {
if(typeof err == 'number'){
err = new HttpError(err);
}
if(err instanceof HttpError){
res.sendHttpError(err);
} else{
if(app.get('env') == 'development'){
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err
});
} else {
log.error(err);
err = new HttpError(500);
res.sendHttpError(err);
}
}
});
我是一個有點新的節點,並在C++來這樣的js抓住這個令人困惑的面向事件的編程是有點困難:)
提前謝謝!