在学习Node开发过程中,经常运行程序(node app.js)时提示端口被占用,信息如下:

node app.js
events.js:141
      throw er; // Unhandled 'error' event
      ^
Error: listen EADDRINUSE :::3000
    at Object.exports._errnoException (util.js:870:11)
    at exports._exceptionWithHostPort (util.js:893:20)
    at Server._listen2 (net.js:1236:14)
    at listen (net.js:1272:10)
    at Server.listen (net.js:1368:5)
    at EventEmitter.listen (/Users/hankewins/www/node_pro/node-test/node_modules/express/lib/application.js:617:24)
    at Object.<anonymous> (/Users/hankewins/www/node_pro/node-test/app.js:15:5)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)

此类情况在主要出现在*unix系统下,程序退出时对应的进程未结束,请注意以下几种操作下:

通过以下命令查看端口被占用的使用:

lsof -i:3000

解决端口被占用可以通过以下几种方式:

针对node app.js单一进程管理,重复操作比较繁琐,这里推荐几个node进程管理器:

参考资料: