2013-09-22 4 views
3

Я запускал узел 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 

Это выглядит так, как будто мой старый объект ответа как-то торчать? Какие-нибудь идеи, что может происходить здесь?

+1

https://github.com/joyent/node/wiki/Api-changes-between-v0.8-and-v0.10 –

+0

@Benjamin - Я не понимаю, что я читаю эти изменения, что я делаю неправильно. – user1031947

+0

Я не подразумевал, что это решает вашу проблему (я не мог видеть ее на основе информации, которую вы предоставили, и я думаю, что это интересно - отсюда и upvote). Я просто подумал, что буду комментировать это, потому что это хорошее место для начала. –

ответ

0

Возможно, вы дважды вызывали next() где-то в вашем промежуточном программном обеспечении - проверяйте auth.isAuthorized или любой другой, который вы используете. Как описано в this question.

Смежные вопросы