1. ホーム
  2. node.js

nodejsリクエストのデフォルトタイムアウト時間を変更する方法は?

2023-08-28 16:31:39

質問

Node/expressサーバーを使用しています。 expressのデフォルトのタイムアウトは120,000msですが、私にとっては十分ではありません。 私の応答が120,000msに達すると、コンソールに以下のようなログが表示されます。 POST /additem 200 120006ms とエラーが表示されるので、タイムアウトをより大きな値に設定したいです。 どうすればいいでしょうか?

どのように解決するのですか?

あなたが使っているのは express を使用していると仮定します。 重要なのは timeout プロパティを設定することです(以下ではタイムアウトを1秒に設定していますが、お好きな値を使ってください)。

var server = app.listen(app.get('port'), function() {
  debug('Express server listening on port ' + server.address().port);
});
server.timeout = 1000;

expressを使わず、vanilla nodeだけで作業する場合も、原理は同じです。 以下はデータを返しません。

var http = require('http');
var server = http.createServer(function (req, res) {
  setTimeout(function() {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
  }, 200);
}).listen(1337, '127.0.0.1');

server.timeout = 20;
console.log('Server running at http://127.0.0.1:1337/');