node js退出状态8,错误代码0在mac上运行

时间:2014-12-28 16:47:57

标签: javascript node.js express

this指南后,我遇到了错误,但不确定问题是什么。

我设法到第2步结束没问题,我重新启动了服务器npm start。然后我对玉器文件进行了一些调整,再次启动它并且在对原木中放入很少的东西时呻吟。 在此发布之前,我删除了整个文件夹并重新开始,但是现在npm服务器甚至不会以快递创建的基本文件开始。

当我运行时:npm install -g express就像本地用户一样,我收到错误告诉我以root身份运行。所以express以root身份安装,但是npm install -g express-generator作为本地用户运行良好。

所以安装了快速和快速生成器后,我现在可以创建一个快速项目(以本地用户身份登录,而不是根目录,项目名称......节点名称):

express noders

现在npm install来获取所有依赖项:

npm install

所以理论上我现在应该能够启动节点js服务器......

npm start

但结果是:

Janines-MacBook-Pro:noders janinenitz$ npm start

> noders@0.0.0 start /Users/janinenitz/node/noders
> node ./bin/www


events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: listen EADDRINUSE
    at errnoException (net.js:905:11)
    at Server._listen2 (net.js:1043:14)
    at listen (net.js:1065:10)
    at Server.listen (net.js:1139:5)
    at Function.app.listen (/Users/janinenitz/node/noders/node_modules/express/lib/application.js:556:24)
    at Object.<anonymous> (/Users/janinenitz/node/noders/bin/www:7:18)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)

npm ERR! noders@0.0.0 start: `node ./bin/www`
npm ERR! Exit status 8
npm ERR! 
npm ERR! Failed at the noders@0.0.0 start script.
npm ERR! This is most likely a problem with the noders package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node ./bin/www
npm ERR! You can get their info via:
npm ERR!     npm owner ls noders
npm ERR! There is likely additional logging output above.
npm ERR! System Darwin 14.0.0
npm ERR! command "node" "/usr/local/bin/npm" "start"
npm ERR! cwd /Users/janinenitz/node/noders
npm ERR! node -v v0.10.35
npm ERR! npm -v 1.4.28
npm ERR! code ELIFECYCLE
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/janinenitz/node/noders/npm-debug.log
npm ERR! not ok code 0

日志文件:

0 info it worked if it ends with ok
1 verbose cli [ 'node', '/usr/local/bin/npm', 'start' ]
2 info using npm@1.4.28
3 info using node@v0.10.35
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info prestart noders@0.0.0
6 info start noders@0.0.0
7 verbose unsafe-perm in lifecycle true
8 info noders@0.0.0 Failed to exec start script
9 error noders@0.0.0 start: `node ./bin/www`
9 error Exit status 8
10 error Failed at the noders@0.0.0 start script.
10 error This is most likely a problem with the noders package,
10 error not with npm itself.
10 error Tell the author that this fails on your system:
10 error     node ./bin/www
10 error You can get their info via:
10 error     npm owner ls noders
10 error There is likely additional logging output above.
11 error System Darwin 14.0.0
12 error command "node" "/usr/local/bin/npm" "start"
13 error cwd /Users/janinenitz/node/noders
14 error node -v v0.10.35
15 error npm -v 1.4.28
16 error code ELIFECYCLE
17 verbose exit [ 1, true ]

在阅读了其他一些帖子之后,我停止了节点服务器npm stop,然后再次开始希望端口号没有冲突,但我得到了相同的结果。

当我以root身份运行时,我得到完全相同的结果。

有没有人有任何想法?您使用node安装的每个站点是否都需要删除端口号并需要删除?


运行lsof -i时,这是结果(关闭Web浏览器后):

COMMAND   PID       USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
UserEvent 201 janinenitz    4u  IPv4 0x45000000008e2c77      0t0  UDP *:*
SystemUIS 209 janinenitz   23u  IPv4 0x45000000478e706f      0t0  UDP *:53884
SystemUIS 209 janinenitz   25u  IPv4 0x00000000478e6e17      0t0  UDP *:*
sharingd  221 janinenitz   12u  IPv4 0x450000004711d70f      0t0  UDP *:*
SpotifyWe 274 janinenitz    6u  IPv4 0x4500000048000000      0t0  TCP localhost:4370 (LISTEN)
SpotifyWe 274 janinenitz    7u  IPv4 0x456d000048b19947      0t0  TCP localhost:4380 (LISTEN)
WiFiAgent 278 janinenitz   16u  IPv4 0x4560000047000000      0t0  UDP *:*

没有任何东西监听端口3000(这是我以前从上面提到的教程得到的defualt页面)我重新启动npm仍然得到与上面相同的结果:

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: listen EADDRINUSE
    at errnoException (net.js:905:11)
    at Server._listen2 (net.js:1043:14)
    at listen (net.js:1065:10)
    at Server.listen (net.js:1139:5)
    at Function.app.listen (/Users/janinenitz/node/noders/node_modules/express/lib/application.js:556:24)
    at Object.<anonymous> (/Users/janinenitz/node/noders/bin/www:7:18)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
... etc etc

我也尝试告诉app.js听一个随机的端口号:app.listen(31001);但仍然没有快乐:S

我使用npm install构建和安装的先前应用程序是否有可能在某种程度上与此相冲突?是否有正式的方式&#34;卸载&#34; nodeJs app?

干杯, Ĵ

1 个答案:

答案 0 :(得分:3)

Error: listen EADDRINUSE表示端口已被占用。您是否在指定端口上运行另一个节点应用程序或某个服务器?我的猜测是你。

如果您想终止正在尝试连接的端口的进程,并且您在终端运行中运行了linux / mac:

lsof -i tcp:{DESIGNATED_PORT} // Example
lsof -i tcp:8080 // Yours will need to be something like so

你会看到这样的输出:

COMMAND    PID            USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
node      2940 sethkrasnianski   12u  IPv4 0xdce46e6699332713      0t0  TCP *:vrpn (LISTEN)

...然后获取PID#并运行kill -9 {PID_NUMBER}

否则,您只需编辑app.js文件(或任何条目文件的名称),并将您的快速服务器分配给一个新的,模糊的端口。