一、环境说明
操作系统:windows7
命令操作环境:cygwin
二、错误说明
在使用grunt命令关闭之后,再次使用grunt,显示:
events.js:182
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE :::8000
at Object.exports._errnoException (util.js:1022:11)
at exports._exceptionWithHostPort (util.js:1045:20)
at Server.setupListenHandle [as _listen2] (net.js:1315:14)
at listenInCluster (net.js:1363:12)
at Server.listen (net.js:1463:7)
at Function.listen (G:\webstorm\movieManageWeb\node_modules\_express@4.16.2@express\lib\application.js:618:24)
at Object.<anonymous> (G:\webstorm\movieManageWeb\app.js:24:5)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
at Function.Module.runMain (module.js:605:10)
at startup (bootstrap_node.js:158:16)
at bootstrap_node.js:575:3
EADDRINUSE就是err address in use,翻译过来就是使用错误的端口
其实就是之前一次的命令运行之后,还占用着端口8000,解决方案有两个,
1、可以重新设置一下另外一个端口号。
2、杀死之前还占用8000端口的进程。
(1)在linux下可以使用命令下查询占用了8000端口号node的进程号:
ps -ax | grep node
得到:
60778 ?? 0:00.62 /usr/local/bin/node abc.js
然后:
kill -9 60778
kill -9 后面加上获取到的pid(这里是60778)就可以了。
(2)在windows下,ctrl+alt+d,启动任务管理器,在进程中查找node的进程:
右键,结束进程。将所有node进程结束,问题解决。
ps:在使用grunt命令来启动页面后,不需要在使用node app.js再次启动,否则会造成EADDRINUSE。
三、在windows cygwin中终止grunt
如果使用ctrl+c不能终止grunt,会出现上述情况。
使用ctrl+z就可以终止grunt,避免上诉问题。