[解決済み] ExpressJS のインスタンスをプログラムでシャットダウンするにはどうすればよいですか?
質問
Express のインスタンスをシャットダウンする方法について考えています。基本的に、私は
.listen(port)
の呼び出しの逆を行いたいのですが、どうすれば Express サーバーがリッスンを停止し、ポートを解放して、きれいにシャットダウンできるでしょうか。
これは奇妙なクエリである可能性があるため、文脈を説明します。おそらく、これにアプローチする別の方法があり、私はそれについて間違った考えをしています。私はsocket.io/nodejsアプリのためのテストフレームワークをセットアップしようとしています。これはシングルページのアプリで、私のテストスクリプトでは(私は Mocha を使用していますが、それは本当に重要ではありません)、私はサーバを起動し、それに対してテストを実行し、その後サーバをシャットダウンすることができるようにしたい。テストが始まる前にサーバーがオンになっていると仮定するか、テストのひとつがサーバーを起動し、その後のすべてのテストがサーバーを起動していると仮定することでこれを回避することができますが、これは本当に厄介なことです。私は、各テストファイルが適切な設定でサーバインスタンスを起動し、テストが終了したらそのインスタンスをシャットダウンする方がはるかに望ましいと思います。そうすれば、テストを実行する際に奇妙な依存関係が発生することもなく、すべてがきれいに保たれます。それはまた、私がスタートアップ/シャットダウン テストを行うことができることを意味します。
これを行う方法について、何かアドバイスはありますか?手動で例外をトリガーして停止させることも考えましたが、それは面倒なようです。Express のドキュメントとソースを徹底的に調べましたが、サーバーをシャットダウンするメソッドは見つかりませんでした。ソケット サーバーは Express サーバーに接続されているだけなので、これは Express レイヤーで実行する必要があると思います。
どのように解決するのですか。
変更になったこと は、express サーバが node http サーバを継承しなくなったからです。幸いなことに、app.listen はサーバー インスタンスを返します。
var server = app.listen(3000);
// listen for an event
var handler = function() {
server.close();
};
関連
-
[解決済み】Javaプロジェクト。ApplicationContextのロードに失敗しました
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Node.jsで終了する方法
-
[解決済み] Node.jsを完全にアンインストールして、最初から再インストールする方法 (Mac OS X)
-
[解決済み] Node.jsで現在のスクリプトのパスを取得するにはどうしたらいいですか?
-
[解決済み] Node.js + Nginx - 今度は何?
-
[解決済み] C# "internal "アクセス修飾子でユニットテストを行う場合
-
[解決済み】典型的なテストディレクトリ構造でunittestを実行する
-
[解決済み】ユニットテストとは何ですか?[クローズド]
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] jest.fn()の機能と使い方を教えてください。
-
[解決済み] ユニットテストは努力に値するか?[クローズド]
-
[解決済み] プライベートメソッドをテストすべきか、パブリックメソッドのみをテストすべきか?[クローズド]
-
[解決済み] テスト駆動開発のデメリット?[クローズド]
-
[解決済み] いつモックすればいい?
-
[解決済み] モッキングフレームワークにおけるモッキングとスパイの比較
-
[解決済み] GTestとCMakeを使った作業の始め方
-
[解決済み] RSpec vs Cucumber (RSpecの話) [終了しました。]
-
[解決済み] Junit: 統合テストと単体テストの分割
-
[解決済み] TDDとBDDの主な違いは何ですか?[クローズド]