你如何debuggingnodejs项目?

在过去16个小时左右,我一直在试图在我的电脑上运行一个MEAN堆栈项目。

我从Yeoman的angular度全面项目开始 。 但那是给了我各种各样的错误,所以我就放弃了。

然后我跟着一些帮助我开始的教程,但没有涉及到我的问题。

然后,我发现mean.io提供了一个完整的样板MEAN堆栈项目,我按照说明来设置。 不幸的是,当我尝试运行它时,我再次遇到各种错误:-(

最糟糕的是,它没有说什么/在哪里造成的错误。

有人能帮我弄明白吗? 请 :-)

我得到的最新错误是当我运行grunt

 C:\Users\Imray\projects Practice\meanIO\meanApp>grunt Running "hook" task >> Starting hooked tasks. Running "clean:0" (clean) task >> 0 paths cleaned. Running "jshint:all" (jshint) task >> 42 files lint free. Running "csslint:src" (csslint) task >> 5 files lint free. Running "concurrent:tasks" (concurrent) task Running "watch" task Waiting... Running "nodemon:dev" (nodemon) task [nodemon] v1.2.1 [nodemon] to restart at any time, enter `rs` [nodemon] watching: *.* [nodemon] starting `node --debug server.js` debugger listening on port 5858 events.js:72 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE at errnoException (net.js:904:11) at Server._listen2 (net.js:1042:14) at listen (net.js:1064:10) at Server.listen (net.js:1138:5) at ExpressEngine.beginBootstrap (C:\Users\Imray\projects Practice\meanIO\meanApp\node_modules\meanio\lib\core_modules\server\E xpressEngine.js:123:14) at Meanio.serveWithDb (C:\Users\Imray\projects Practice\meanIO\meanApp\node_modules\meanio\lib\core_modules\server\index.js:14 :10) at Consumer.Dependable.runAction (C:\Users\Imray\projects Practice\meanIO\meanApp\node_modules\meanio\node_modules\lazy-depend able\index.js:72:22) at Consumer.Dependable.fire (C:\Users\Imray\projects Practice\meanIO\meanApp\node_modules\meanio\node_modules\lazy-dependable\ index.js:69:53) at Consumer.onResolved (C:\Users\Imray\projects Practice\meanIO\meanApp\node_modules\meanio\node_modules\lazy-dependable\index .js:119:8) at Consumer.Dependable.resolve (C:\Users\Imray\projects Practice\meanIO\meanApp\node_modules\meanio\node_modules\lazy-dependab le\index.js:55:10) [nodemon] app crashed - waiting for file changes before starting... 

根据你的输出你有Error: listen EADDRINUSE 。 这意味着你已经在这个端口上运行了进程。

尝试通过键入来调查哪个进程使用此端口:

 sudo lsof -n -i4TCP:$PORT_NUMBER | grep LISTEN 

杀死该进程并重新启动您的应用程序。
如果您需要该过程,请更改您的应用程序端口。

EADDRINUSE是一个低级系统错误,通常意味着你正在使用的端口号上还有别的东西在运行。 尝试使用不同的端口。

编辑:请注意,它可能不只是实际的服务器端口是无效的。 它看起来像你的部署脚本创build一个debugging器,并可能在其他端口上侦听的其他服务,所以他们可能需要改变。

重新启动计算机后问题就消失了。 不知道为什么,但我会接受。