Microsoftのボットフレームワークをいじって、ボットのメインファイルであるapp.jsファイルを実行しようとすると、ボットエミュレーターとすべてのプログラムを閉じて再度app.jsを実行した後、初めてで問題ありません。このエラーメッセージが飛び出します
events.js:183
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE :::3978
at Object._errnoException (util.js:1022:11)
at _exceptionWithHostPort (util.js:1044:20)
at Server.setupListenHandle [as _listen2] (net.js:1351:14)
at listenInCluster (net.js:1392:12)
at Server.listen (net.js:1476:7)
at Server.listen (C:\Users\yu\Documents\GitHub\BotBuilder-
Samples\Node\cards-AdaptiveCards\node_modules\restify\lib\server.js:404:32)
at Object.<anonymous> (C:\Users\yu\Documents\GitHub\BotBuilder-
Samples\Node\cards-AdaptiveCards\app.js:10:8)
at Module._compile (module.js:643:30)
at Object.Module._extensions..js (module.js:654:10)
at Module.load (module.js:556:32)
私はこれに対するいくつかの解決策を見つけました、jsファイルを2回目に実行したときにポート3978が取得されたようです。cmdを使用して、そのポートを使用しているタスクを見つけ、タスクを強制終了する必要があります。
C:\>netstat -aon|findstr 3978
これは移植版ですが、すでにすべてのプログラムを閉じています
TCP 0.0.0.0:3978 0.0.0.0:0 LISTENING 13140
TCP [::]:3978 [::]:0 LISTENING 13140
実際にはnode.exe自体であり、バックグラウンドで実行されています
C:\Users\yu>tasklist|findstr 13140
node.exe 13140 Console 1 42,064 K
そして私はそれを殺す必要があります
C:\Users\yu>taskkill /f /t /im node.exe
ファイルを2回以上実行したいときに常にこれを繰り返すとは限らない方法はありますか?それは今日配線され始めただけです。つまり、すべての異なるapp.jsファイルについて、公式のサンプルコードを含めます。過去1か月間、すべてが順調でした、IDE私が使用しているのは崇高なテキスト3、node.jsバージョンは8.9.4 ltsです
ポートを使用しているプロセスを閉じてみてください。
netstat -tulnp | grep <port_number>
以下のパッケージをインストールすることで、永久に修正されました。
npm install [email protected] --save-dev --save-exact
端末で次のコマンドを実行します。
echo fs.inotify.max_user_watches=524288 | Sudo tee -a /etc/sysctl.conf && Sudo sysctl -p
Arch Linuxの場合、この行を/etc/sysctl.d/99-sysctl.confに追加します:
fs.inotify.max_user_watches=524288
次に実行します:
sysctl --system
これは再起動後も持続します。
https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers#the-technical-details
どちらのソリューションでも機能します。そうでない場合は、システムを再起動して、もう一度確認してください。
macを使用している場合、同じポートで何も実行されていないことを確認するには、次のようにします。
killall node
アプリを再起動します。
待機中のポートは、すでに別のプロセスによって待機されています。
このエラーに直面したとき、Windows PowerShellを使用してプロセスを強制終了しました(Windowsを使用したため)。
ps
と入力すると、プロセスのリストを取得できますStop-process <Id>
Windowsユーザーにとっては助けになると思います。
Node.jsアプリケーションを実行する前に、別のポートを指定してみてください。
たとえば、ポート3978に衝突がある場合は、server.jsを起動する前に別のポートを設定します。
export PORT=3979
私も同じ問題が発生し、多くの方法を試しましたが、最終的にこれを取得しました、これはうまくいきます
npm install [email protected] --save-dev --save-exact
詳細については、このリンクを参照してください https://github.com/ionic-team/ionic-cli/issues/2922
ノードサーバーの実行中にもエラーが発生しました。つまり、events.js:183スローer; //未処理の「エラー」イベント^私の場合、インストール中にMysqlポート番号3306を3307に変更したため、エラーが発生しました。 Mysqlのポート番号を3306に変更することで、このエラーから回復しました。
これは、すでに使用していたプロジェクトを閉じずに別のプロジェクトを開いたときに発生します。プロジェクトの使用を終了するときは、必ずCtrl + cを使用してください。 PCを再起動してみてください。再起動するはずです。少なくともそれが私にとってはうまくいった。
私も同じ問題に直面しました。 npm install [email protected] --save-dev --save-exact
のインストールはこれを修正しませんでした。後で、IIS JS Expressサーバー用に構成したのと同じポートにNodeによってホストされている別のWebサイトがあることを知りました。 IIS Webサイトを停止すると、この問題を回避できます。