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抓住这个令人困惑的面向事件的编程是有点困难:)
提前谢谢!