[解決済み] 終了したらmongooseの接続を適切に終了させること
2022-04-22 13:21:05
質問
mongooseを連続実行しないスクリプトで使っているのですが、非常に単純な問題に直面しているのですが、答えが見つかりません。簡単に言うと、mongodbにリクエストを送るmongoose関数を呼び出すと、私のnodejsインスタンスは決して停止せず、Ctrl+cやProgram.exit()などで手動で停止しなければなりません。
コードは大体こんな感じです。
var mongoose = require('mongoose');
// if my program ends after this line, it shuts down as expected, my guess is that the connection is not really done here but only on the first real request ?
mongoose.connect('mongodb://localhost:27017/somedb');
// define some models
// if I include this line for example, node never stop afterwards
var MyModel = mongoose.model('MyModel', MySchema);
mongoose.disconnect()の呼び出しを追加してみましたが、結果はダメでした。それ以外はすべて正常に動作しています(検索、保存、...)。
これは、この方と全く同じ問題で、残念ながら回答はありませんでした。 https://groups.google.com/group/mongoose-orm/browse_thread/thread/c72cc1c51c76e661
ありがとうございます。
EDIT: 技術的には正しいので、以下の回答を受け入れました。しかし、もし誰かがこの問題に再びぶつかった場合、mongooseやmongodbドライバは、まだクエリが実行されている場合、接続を閉じるように要求しても実際には閉じないようです。
切断の呼び出しを全く覚えておらず、クエリの実行が終了しても切断を行いません。例外のスローやその類のものは一切なく、呼び出しを破棄するだけで、実際に接続を閉じることはないのです。
つまり、disconnect()を実際に動作させたい場合は、すべてのクエリが処理されたことを確認してから呼び出す必要があるということです。
どのように解決するのですか?
接続を閉じるには
mongoose.connection.close()
関連
-
[解決済み】AWS STS AssumeRoleへのアクセスを可能にする方法
-
[解決済み】nodemon - app crashed - waiting for file changes before start
-
[解決済み】Mongooseで、日付でソートするにはどうしたらいいですか?(node.js)
-
[解決済み】NPMインストールエラー:解析中の予期せぬJSON入力の終了 '...nt-webpack-plugin": "0'' 付近。
-
[解決済み】POSTできない/expressを使用するとエラーが発生する
-
[解決済み] MongoClient v3.0使用時、db.collectionが関数でない
-
[解決済み] create-react-app、インストールエラー("コマンドが見つからない")。
-
[解決済み] Heroku "状態が起動から停止に変更されました SIGTERMで全プロセスを停止"
-
[解決済み] Npmエラー - Windows NT - 解決方法
-
[解決済み] Mongoose インスタンス .save() が動作しない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】mongoError: トポロジーが破壊されました
-
[解決済み】Google spreadsheet api Requestに不十分な認証スコープがあった。
-
[解決済み】npx コマンドが見つかりません。
-
[解決済み】E11000重複キーエラー mongodb mongooseのインデックス
-
[解決済み] AWS s3 api error: specified bucket does not exist.
-
[解決済み] nodejsでfindAllのソート順を続編にする
-
[解決済み] エラーメッセージ MongoError: bad auth URI 文字列で認証に失敗しました。
-
[解決済み] node.jsのセットアップウィザードが途中で終了してしまう
-
[解決済み] NPMが同じエラーで固まる EISDIR: ディレクトリに対する不正な操作、エラーで読み込み (ネイティブ)
-
[解決済み] エラー: ノード出力を "|head" にパイプするときに EPIPE を書き込む。