1

1つのノードアプリを実行していて、ノードが他のプロセスを実行しているときにExpressフレームワークを試したいのですが、Expressサンプルアプリを実行すると、次のように表示されます。

Error: listen EADDRINUSE
at errnoException (net.js:776:11)
at HTTPServer.Server._listen2 (net.js:915:14)
at listen (net.js:942:10)
at HTTPServer.Server.listen (net.js:992:5)
at Object.<anonymous> (/home/omar/webServer/app.js:35:5)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)

同じポートで両方のノードプログラムを実行しようとするとこれが発生することはわかっていますが、一方のアプリポート3000ともう一方の8080で使用しているため、一方のノードインスタンスがもう一方のノードインスタンスをブロックするかどうかはわかりません。

4

3 に答える 3

0

Netstatを使用して、リスニングポートとプロセスを確認します。

netstat -ntlp

例として他のポートexpress(8081、8082など)を選択するか、PIDで8080ポートを使用するプログラムを強制終了できます。

于 2012-11-05T23:31:28.453 に答える
0

ノードアプリの前にnginxを配置できます(異なるポートで実行されます)

それ以外の場合は、アプリに別のポートを渡すだけです。

$ NODE_PORT=8080 node app.js
$ NODE_PORT=8081 node app2.js

app.js

var port = process.env.NODE_PORT;
于 2012-11-06T00:06:23.820 に答える
0

これは、現在正常に実行されているノードプロセスがあることを意味します。すべてのノードプロセスを強制終了してから、各アプリが異なるポートを使用してリッスンしていることを再確認してください。

于 2012-11-06T01:01:11.847 に答える