3
我一直在运行Node 0.8.25和Express 3.4.0。升级到节点0.10后的问题
工程很好。
我试着升级到节点0.10稳定,我开始有奇怪的问题。
例如,我有一个看起来路线(有点)像这样:
app.post("/toPDF", auth.isAuthorized, function(req, res, next){
getPDF(req.data, function(err, pdfData) {
if (err) {
next(err);
} else {
res.setHeader("Content-type", "application/pdf");
res.setHeader("Cache-Control", "no-cache");
res.setHeader("Accept-Ranges", "none");
res.setHeader("Content-Disposition", "inline; filename=stuff.pdf");
res.end(pdfData.raw, "binary");
}
});
});
升级后的节点0.10,第一次我把这个路线,一切正常。
但是,第二次调用路由时,应用程序崩溃,并显示错误“Headers already sent”。
我想看看哪些头已经出现在响应中。所以我在发送任何头文件之前将以下内容添加到getPDF回调的顶部。
console.log(res._headers);
崩溃权利之前,这种输出:
Content-type application/pdf
Cache-Control no-cache
Accept-Ranges none
Content-Disposition inline; filname = stuff.pdf
看起来好像我以前的响应对象以某种方式游逛?任何想法可能会发生在这里?
https://github.com/joyent/node/wiki/Api-changes-between-v0.8-and-v0.10 –
@Benjamin - 我不清楚从阅读这些更改我做错了什么。 – user1031947
我并不意味着这可以解决您的问题(我无法根据您提供的信息来查看它,而且我认为这很有趣 - 因此得到了赞赏)。我只是觉得我会评论这个,因为这是一个很好的开始。 –