Node.jsアプリを可能な限り最良の方法で終了する方法を学ぶ
Node.jsアプリケーションを終了するにはさまざまな方法があります。
コンソールでプログラムを実行すると、次のコマンドでプログラムを閉じることができます。ctrl-C
、しかしここで議論したいのはプログラム的に終了することです。
最も抜本的なものから始めて、なぜあなたがより良いのかを見てみましょうないそれを使用します。
ザ・process
コアモジュールは、Node.jsプログラムをプログラムで終了できる便利なメソッドを提供します。process.exit()
。
Node.jsがこの行を実行すると、プロセスはただちに強制終了されます。
これは、保留中のコールバック、まだ送信されているネットワークリクエスト、ファイルシステムアクセス、または書き込みプロセスを意味します。stdout
またはstderr
-すべてがすぐに不当に終了します。
これで問題がない場合は、オペレーティングシステムに終了コードを通知する整数を渡すことができます。
process.exit(1)
デフォルトでは、終了コードは0
、これは成功を意味します。終了コードが異なれば意味も異なります。これを独自のシステムで使用して、プログラムを他のプログラムと通信させることができます。
終了コードの詳細については、次のURLを参照してください。https://nodejs.org/api/process.html#process_exit_codes
を設定することもできますprocess.exitCode
プロパティ:
process.exitCode = 1
プログラムが後で終了すると、Nodeはその終了コードを返します。
すべての処理が完了すると、プログラムは正常に終了します。
Nodeを使用して、次のHTTPサーバーのようなサーバーを何度も起動します。
const express = require('express')
const app = express()
app.get(’/’, (req, res) => {
res.send(‘Hi!’)
})
app.listen(3000, () => console.log(‘Server ready’))
このプログラムは決して終わりません。あなたが電話する場合process.exit()
、現在保留中または実行中のリクエストはすべて中止されます。これはよくない。
この場合、コマンドにSIGTERMシグナルを送信し、それをプロセスシグナルハンドラーで処理する必要があります。
注意:
process
「必須」は必要ありません。自動的に利用可能になります。
const express = require('express')
const app = express()
app.get(’/’, (req, res) => {
res.send(‘Hi!’)
})
const server = app.listen(3000, () => console.log(‘Server ready’))
process.on(‘SIGTERM’, () => {
server.close(() => {
console.log(‘Process terminated’)
})
})
信号とは何ですか?シグナルはPOSIX相互通信システムです。発生したイベントをプロセスに通知するためにプロセスに送信される通知です。
SIGKILL
プロセスにすぐに終了するように指示するシグナルであり、理想的には次のように動作します。process.exit()
。
SIGTERM
プロセスに正常に終了するように指示するシグナルです。これは、次のようなプロセスマネージャーから送信されるシグナルです。upstart
またはsupervisord
と他の多く。
この信号は、プログラム内から別の関数で送信できます。
process.kill(process.pid, 'SIGTERM')
または、プログラムを実行している別のNode.js、または終了するプロセスのPIDを知っているシステムで実行されている他のアプリから。
私の無料ダウンロードNode.jsハンドブック
その他のノードチュートリアル:
- npmパッケージマネージャーの紹介
- Node.jsの紹介
- Axiosを使用したHTTPリクエスト
- Node.jsアプリをホストする場所
- Node.jsを使用してGoogleAnalyticsAPIと対話します
- npxノードパッケージランナー
- package.jsonガイド
- npmはどこにパッケージをインストールしますか?
- Node.jsを更新する方法
- npmを使用してインストールされたパッケージを使用または実行する方法
- package-lock.jsonファイル
- npmを使用したセマンティックバージョニング
- node_modulesフォルダーをGitにコミットする必要がありますか?
- すべてのノードの依存関係を最新バージョンに更新します
- Node.jsを使用したJSONの解析
- npmパッケージのインストール済みバージョンを検索します
- Node.jsストリーム
- 古いバージョンのnpmパッケージをインストールします
- ノード内の現在のフォルダを取得します
- ノードにオブジェクトを記録する方法
- エクスポートを使用してノードファイルから機能を公開します
- ノードとブラウザの違い
- ノードを使用してHTTPPOSTリクエストを作成します
- Nodeを使用してHTTPリクエストの本文データを取得する
- ノードバッファ
- Node.jsの簡単な歴史
- Node.jsをインストールする方法
- Nodeを使用するには、どのくらいのJavaScriptを知っている必要がありますか?
- Node.jsREPLの使用方法
- ノード、コマンドラインから引数を受け入れる
- ノードを使用してコマンドラインに出力する
- ノードのコマンドラインからの入力を受け入れる
- `npmアンインストール`でnpmパッケージをアンインストールする
- npmグローバルまたはローカルパッケージ
- npmの依存関係とdevDependencies
- Node.jsイベントループ
- process.nextTick()を理解する
- setImmediate()を理解する
- ノードイベントエミッター
- HTTPサーバーを構築する
- ノードでHTTPリクエストを行う
- Nodefsモジュール
- Axiosを使用したノードでのHTTPリクエスト
- Nodeでファイルを読み取る
- ノードファイルパス
- Nodeを使用したファイルの書き込み
- ノードファイルの統計
- ノードでのファイル記述子の操作
- ノード内のフォルダーの操作
- ノードパスモジュール
- ノードhttpモジュール
- Node.jsでのWebSocketの使用
- MySQLとNodeの操作の基本
- Node.jsでのエラー処理
- パグガイド
- Node.jsから環境変数を読み取る方法
- Node.jsプログラムを終了する方法
- Nodeosモジュール
- ノードイベントモジュール
- ノード、開発と本番の違い
- Node.jsにファイルが存在するかどうかを確認する方法
- Node.jsで空のファイルを作成する方法
- Node.jsでファイルを削除する方法
- Node.jsを使用してファイルの最終更新日を取得する方法
- JavaScriptで日付が今日かどうかを判断する方法
- Node.jsのファイルにJSONオブジェクトを書き込む方法
- 次のプロジェクトでNode.jsを使用する必要があるのはなぜですか?
- 任意のフォルダからWebサーバーを実行します
- Node.jsでMongoDBを使用する方法
- ChromeDevToolsを使用してNode.jsアプリをデバッグします
- pnpmとは何ですか?
- Node.jsランタイムv8オプションリスト
- npm使用時の「書き込みアクセスの欠落」エラーを修正する方法
- Node.jsでESモジュールを有効にする方法
- Node.jsを使用して子プロセスを生成する方法
- Expressで解析されたボディと生のボディの両方を取得する方法
- Node.jsでファイルのアップロードを処理する方法
- ノードモジュールのピア依存関係とは何ですか?
- Node.jsでCSVファイルを作成する方法
- Node.jsでCSVファイルを読み取る方法
- ノードコアモジュール
- Node.jsを使用して一度に複数のフォルダー番号をインクリメントする
- キャンバスをデータURLに印刷する方法
- Node.jsとCanvasを使用して画像を作成および保存する方法
- Node.jsを使用して画像をダウンロードする方法
- Node.jsでファイルの名前を一括変更する方法
- ノード内のフォルダ内のすべてのファイルの名前を取得する方法
- promiseを使用し、Node.jsコールバックベースの関数で待機する方法
- npmパッケージをローカルでテストする方法
- 実行時に現在のNode.jsバージョンを確認する方法
- Sequelizeを使用してPostgreSQLと対話する方法
- Node.jsを使用してHTMLページを提供する
- Node.jsの `util.pumpは関数ではありません`エラーを解決する方法