你如何调试nodejs项目?

时间:2015-02-06 14:03:02

标签: node.js debugging gruntjs mean.io angular-fullstack

过去16个小时左右,我一直在尝试在我的计算机上运行MEAN堆栈项目。

我从Yeoman angular-fullstack project开始。但那给了我各种各样的错误,所以我就放弃了。

然后我学习了一些帮助我入门的教程,但没有提到我的任何问题。

然后我发现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...

3 个答案:

答案 0 :(得分:2)

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

尝试通过输入以下内容来调查哪个进程使用此端口:

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

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

答案 1 :(得分:0)

EADDRINUSE是一个低级系统错误,通常意味着您正在使用的端口号上运行其他东西。尝试使用其他端口。

编辑:请注意,它可能不仅仅是实际的服务器端口无效。看起来您的部署脚本会创建一个调试器,可能还有其他可以侦听各种端口的服务,因此可能需要更改它们。

答案 2 :(得分:0)

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