事象
node.jsアプリケーションにてMongoDBに接続に行く処理にて以下のようなタイムアウトエラーになる、
MongoTimeoutError: Server selection timed out after 10000 ms ... name: 'MongoTimeoutError'
環境情報
- NodeJS Version: 12.16.1 - x64
- MongoDB Version: 4.2.6
原因/解決策
接続に10000ms(10s)以上かかっている可能性がある。
よってMongoDB用の環境変数であるMONGO_OPTIONS
にて以下のようタイムアウト値を変更する。
MONGO_OPTIONS='{ "serverSelectionTimeoutMS": 30000}'
以下、補足です。
補足
環境によっては接続に時間がかかって接続処理の途中にてエラーとなり接続断が起きてしまいます。
node.jsによりMongoDBへの接続に対しては
MONGO_URL
のように環境変数を渡して起動を行います。
そこで解決策に記載したようにデフォルトである10000よりも大きな値で動きが変わるか否かを確認すると「接続処理に時間がかかっていることによるエラーか否か」の切り分けができます。
以上、ご参考になれば幸いです。