围绕微软的botframework,当我尝试运行app.js文件时,这是机器人的主要文件,第一次没问题,在我关闭僵尸模拟器和所有程序之后,运行应用程序。 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文件时采用了端口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
当我想多次运行该文件时,有没有办法不总是重复这样做,它今天才开始连线,我的意思是所有不同的app.js文件,包括官方示例代码。在过去的一个月里,一切都很好,我使用的IDE是sublime text 3,node.js版本是8.9.4 lts
答案 0 :(得分:5)
尝试关闭正在使用您的端口的进程。
netstat -tulnp | grep <port_number>
安装以下pakcage可以永久修复它。
npm install ws@3.3.2 --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
任何一种解决方案都可以使用。如果没有,请重新启动系统并再次检查。
答案 1 :(得分:1)
我在Linux的终端中使用此命令解决了这个问题。
rm -rf node_modules
rm package-lock.json yarn.lock
npm cache clear --force
npm install
答案 2 :(得分:0)
即使我在运行节点服务器时也遇到错误。 即events.js:183 扔掉//未处理的'错误'事件 ^ 在我的情况下,我得到了这个错误,因为我在安装时将Mysql端口号3306更改为3307。我通过将Mysql端口号更改为3306来恢复该错误,现在正在运行。
答案 3 :(得分:0)
我也遇到了同样的问题,并尝试了许多方法,但最终还是成功了,
npm install ws@3.3.2 --save-dev --save-exact
请参阅此链接以获取更多说明 https://github.com/ionic-team/ionic-cli/issues/2922
答案 4 :(得分:0)
在运行node.js应用程序之前尝试指定其他端口。
例如,如果端口3978发生冲突,请在启动server.js之前设置其他端口:
export PORT=3979
答案 5 :(得分:0)
如果您使用的是mac
,请确保没有任何内容在同一端口上运行,请执行以下操作:
killall node
并重新启动您的应用。
答案 6 :(得分:0)
我也确实遇到了同样的问题。安装npm install ws@3.3.2 --save-dev --save-exact
不能解决此问题。后来我才知道,在我为Node JS Express服务器配置的同一端口中,还有另一个由IIS托管的网站。停止IIS网站可以解决此问题。
答案 7 :(得分:0)
您正在监听的端口已经被另一个进程监听。
遇到此错误时,我使用Windows PowerShell终止了该进程(因为我使用Windows)
ps
,然后可以获得进程列表Stop-process <Id>
我认为这对Windows用户有帮助。
答案 8 :(得分:0)
找到正在使用该端口的进程并将其终止。
假定服务器端口为8000。
1)C:> netstat -aon | findstr 8000
此命令将返回进程ID(PID)。
2)C:> taskkill / F / PID 7848
此命令将通过PID终止进程。
答案 9 :(得分:0)
这种情况发生在您打开另一个项目而没有关闭已经使用的项目时,请记住在完成使用项目后始终使用Ctrl + c。尝试重新启动PC,它应该可以再次工作。至少那对我有用。
答案 10 :(得分:0)
您可能正在同一端口上运行其他应用程序,但该应用程序仍在运行。 因此,您不能在同一端口上运行两个应用程序。
答案 11 :(得分:0)
面临同样的问题
尝试观看安装的守望者或对其进行升级。
brew install watchman
brew upgrade watchman
答案 12 :(得分:-1)
我遇到了同样的问题。安装此软件包可以永久解决该问题:
npm install ws@3.3.2 --save-dev --save-exact