Я запускал узел 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, первый раз, когда я называю этот маршрут, все работает, как ожидалось.
Однако во второй раз, когда вызывается маршрут, приложение вылетает с ошибкой «Заголовки уже отправлены».
Я хотел видеть, какие заголовки уже присутствовали в ответе. Поэтому я добавил следующее в начало обратного вызова 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
Я не подразумевал, что это решает вашу проблему (я не мог видеть ее на основе информации, которую вы предоставили, и я думаю, что это интересно - отсюда и upvote). Я просто подумал, что буду комментировать это, потому что это хорошее место для начала. –