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
我並不意味着這可以解決您的問題(我無法根據您提供的信息來查看它,而且我認爲這很有趣 - 因此得到了讚賞)。我只是覺得我會評論這個,因爲這是一個很好的開始。 –