簡體   English   中英

幾個小時后節點請求管道掛起

[英]node request pipe hanging after a few hours

我在用於下載圖像的節點應用程序中有一個端點

 var images = { 'car': 'http://someUrlToImage.jpg', 'boat': 'http://someUrlToImage.jpg', 'train': 'http://someUrlToImage.jpg' } app.get('/api/download/:id', function(req, res){ var id = req.params.id; res.setHeader("content-disposition", "attachment; filename=image.jpg"); request.get(images[id]).pipe(res); }); 

現在,此代碼可以正常工作,但是在應用程序運行了幾個小時之后,端點才掛起。

我正在監視該應用程序的內存使用情況,該使用情況保持一致,並且其他僅返回一些JSON的終結點都正常響應,因此就好像事件循環被某種方式阻止一樣。 使用請求模塊傳遞響應時,我是否缺少某種陷阱? 還是有更好的解決方案來實現這一目標?

我也在使用Express模塊​​。

您應該在請求上添加錯誤偵聽器,因為錯誤不會在管道中傳遞。 這樣,如果您的請求有錯誤,它將關閉連接,您將得到原因。

request
.get(...)
.on('error', function(err) {
  console.log(err);
  res.end();
})
.pipe(res)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM