1
我有一個關於在插座的NodeJS超時問題。快遞Http請求超時
在第一時間,我添加了如下因素代碼:
req.socket.once('timeout', function(err) {
imports.logger.warn('Express socket timeout.', err);
res.status(504).end('Connection timeout');
});
而且我在控制檯登錄經常Express插槽超時錯誤加載頁面後很長一段時間。 所以(調試),我嘗試加入這一行:
req.socket.setTimeout(4000);
最後,我看到我的所有要求在4秒後處理Express插槽超時。 我在網上搜索,我發現了很多信息,但我仍然不明白。
我不明白,關閉該請求不還關閉套接字爲什麼res.json()函數。與保持活力有關聯嗎?與網絡套接字的鏈接?
如果是到網絡插座的鏈接什麼是最好的初步實踐?我應該關閉插座和(如果是的話)在哪裏?
如果有必要,你可以看到我的簡單快捷航線代碼:
app.get(apiUrl + '/:id', function (req, res) {
NewsFeed.findById(req.params.id, function (err, newsFeed) {
if (err) {
return app.error(res, 404, 'Error 404: No news found');
}
res.json(formatNewsFeed(newsFeed));
});
});
好,謝謝。但我不確定這是expressjs拋出套接字超時異常的正常行爲。在我的其他項目中,我從來沒有用expressjs來解決這個問題。 – jeremieca