[Express.js] timeout の設定変更、動作確認サンプルコード

Express.js の default timeout と timeout の設定を変更する方法とサンプルコードをご紹介します。

Expressjs

背景 Express の default timeout って何 ms ?

改めて「Express の default timeout って何 ms だっけ?」と思い、Node.js 公式ドキュメントを読んで確認しました。

ついでに、サンプルコードを書いて Express の timeout について動作確認もしてみた内容を以下に記載しています。

Express の timeout を変更したサンプルコード

[Sample codes] server.timeout, request.setTimeout(timeout[, callback]), response.setTimeout(msecs[, callback]) · Pull Request #4 · codenote-net/expressjs-sandbox

Express default timeout 動作確認

Timeout in milliseconds. Default: 120000 (2 minutes).

引用元: server.timeout – HTTP | Node.js v12.13.0 Documentation

実行結果 default timeout

$ npm run start

> [email protected] start /path/to/expressjs-sandbox
> node ./bin/www

1000 ms
2000 ms
3000 ms
.
.
.
118000 ms
119000 ms
GET /timeout/default - - ms - -
120000 ms

server.timeout 動作確認

実行結果 server.timeout

$ npm run start

> [email protected] start /path/to/expressjs-sandbox
> node ./bin/www

server.timeout: (default) 120000 ms
server.timeout: (custom) 5000 ms
1000 ms
2000 ms
3000 ms
4000 ms
GET /timeout/default - - ms - -
5000 ms
6000 ms
7000 ms
.
.
.

request.setTimeout 動作確認

実行結果 request.setTimeout

$ npm run start

> [email protected] start /path/to/expressjs-sandbox
> node ./bin/www

100 ms
200 ms
300 ms
400 ms
500 ms
600 ms
700 ms
800 ms
900 ms
GET /timeout/req_setTimeout - - ms - -
1000 ms

response.setTimeout 動作確認

$ npm run start

> [email protected] start /path/to/expressjs-sandbox
> node ./bin/www

100 ms
200 ms
300 ms
400 ms
500 ms
600 ms
700 ms
800 ms
900 ms
1000 ms
1100 ms
1200 ms
1300 ms
1400 ms
1500 ms
1600 ms
1700 ms
1800 ms
1900 ms
GET /timeout/res_setTimeout - - ms - -
2000 ms

以上、Express の default timeout を確認しつつ、timeout を設定変更の方法を把握したい、現場からお送りしました。

参考情報