[解決済み] ノード / エクスプレス EADDRINUSE、アドレスはすでに使用中です - サーバーを停止してください。
2022-02-08 23:20:51
質問
node.jsでconnectを使って簡単なサーバーを動かしています。
var server = require('connect').createServer();
//actions...
server.listen(3000);
私のコードでは、実際のハンドラはありますが、これは基本的なアイデアです。私が経験した問題は
EADDRINUSE, Address already in use
以前クラッシュしたりエラーが発生したアプリケーションを再度実行すると、このエラーが表示されます。ターミナルの新しいインスタンスを開いていないので、プロセスを
ctr + z
.
サーバーまたは接続を閉じるだけでよいのは間違いないのですが。私は
server.close()
で
process.on('exit', ...);
を、運が悪いことに
解決方法を教えてください。
process.on('exit', ..)
は、プロセスがクラッシュしたり、強制終了した場合には呼び出されません。イベントループが終了したときにのみ呼び出されます。
server.close()
みたいな
はイベントループを終了させますが(まだあちこちで現在実行中のスタックを待つ必要があります)、これを終了イベントの中に入れるのは意味がありません...。
クラッシュ時、次のようにします。
process.on('uncaughtException', ..)
そして、キルには
process.on('SIGTERM', ..)
つまり、SIGTERM(デフォルトのキルシグナル)はアプリにクリーンアップをさせ、SIGKILL(即時終了)はアプリに何もさせないということです。
関連
-
[解決済み】npx コマンドが見つかりません。
-
[解決済み】Express.js req.bodyが未定義です。
-
[解決済み】モジュール '@babel/core' が見つかりません。
-
[解決済み】MongooseでEnumを作成し使用する方法
-
[解決済み] nodeファイルの先頭にある"/usr/bin/env node "は、具体的には何をするのですか?
-
[解決済み] エラーです。Cannot find module 'ejs'
-
[解決済み] "app.use(express.cookieSession())" に "secret" オプションが必要です。
-
[解決済み] nodeやExpressを使用してJSONを返す正しい方法
-
[解決済み] ノードでユーザーのIPアドレスを決定する方法
-
[解決済み] Expressを使用してNodeJSサーバーからファイルをダウンロードする
最新
-
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: トポロジーが破壊されました
-
[解決済み】「安全なTLS接続が確立される前にクライアントのネットワークソケットが切断されました」(ノード10
-
[解決済み】「npm install」と「npm rebuild」の違いとは?
-
[解決済み】NPMインストールエラー:解析中の予期せぬJSON入力の終了 '...nt-webpack-plugin": "0'' 付近。
-
[解決済み] bodyParser は非推奨です express 4
-
[解決済み] エラーメッセージ MongoError: bad auth URI 文字列で認証に失敗しました。
-
[解決済み] Json Web Token verify() return jwt malformed
-
[解決済み] ノードマータ予期せぬフィールド
-
[解決済み] DynamoDBで一括削除するにはどうしたらいいですか?
-
[解決済み】WindowsでTCPまたはUDPポートをリッスンしているプロセスを見つけるにはどうすればよいですか?