从命令行运行 `node index.js` 可以,但是当我在 package.json 中使用启动脚本时,我得到一个 EADDRINUSE /usr/bin/local/node 错误
Posted
技术标签:
【中文标题】从命令行运行 `node index.js` 可以,但是当我在 package.json 中使用启动脚本时,我得到一个 EADDRINUSE /usr/bin/local/node 错误【英文标题】:Running `node index.js` from command line works but when I use the start script in my package.json I get an EADDRINUSE /usr/bin/local/node error 【发布时间】:2019-03-12 10:28:29 【问题描述】:我可以直接从命令行运行node index.js
,但是当我运行具有相同命令的启动脚本时,我得到一个错误。
这是相关的服务器信息:
const PORT = process.env.NODE || 3000
app.listen(PORT, () => console.log(`Server running on $PORT`))
这是 package.json 脚本:
"scripts":
"start": "node index.js"
,
这是从项目根目录运行的终端输出,没有脚本:
> node index.js
Server running on port 3000
这是使用脚本运行它的终端输出:
>yarn start
yarn run v1.10.1
$ node index.js
events.js:183
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE /usr/local/bin/node
at Server.setupListenHandle [as _listen2] (net.js:1343:19)
at listenInCluster (net.js:1401:12)
at Server.listen (net.js:1496:5)
at Function.listen (/Users/mmelv/Workspace/Projects/Reportably/server/node_modules/express/lib/application.js:618:24)
at Object.<anonymous> (/Users/mmelv/Workspace/Projects/Reportably/server/index.js:29:5)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Function.Module.runMain (module.js:694:10)
at startup (bootstrap_node.js:204:16)
at bootstrap_node.js:625:3
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
这让我困惑了好几个小时。我试过sudo killall node
,lsof -i tcp:3000
什么也没返回。我已经重新安装并升级了节点。
另外,当我尝试将它部署到 Heroku 时,我遇到了同样的错误:
2018-10-07T15:47:56.000000+00:00 app[api]: Build succeeded
2018-10-07T15:47:58.569471+00:00 heroku[web.1]: Starting process with command `npm start`
2018-10-07T15:48:01.927982+00:00 app[web.1]:
2018-10-07T15:48:01.928007+00:00 app[web.1]: > server@1.0.0 start /app
2018-10-07T15:48:01.928009+00:00 app[web.1]: > node index.js
2018-10-07T15:48:01.928010+00:00 app[web.1]:
2018-10-07T15:48:02.936929+00:00 app[web.1]: events.js:183
2018-10-07T15:48:02.936974+00:00 app[web.1]: throw er; // Unhandled 'error' event
2018-10-07T15:48:02.936976+00:00 app[web.1]: ^
2018-10-07T15:48:02.936977+00:00 app[web.1]:
2018-10-07T15:48:02.936979+00:00 app[web.1]: Error: listen EADDRINUSE /app/.heroku/node/bin/node
2018-10-07T15:48:02.936981+00:00 app[web.1]: at Object._errnoException (util.js:992:11)
2018-10-07T15:48:02.936982+00:00 app[web.1]: at _exceptionWithHostPort (util.js:1014:20)
2018-10-07T15:48:02.936984+00:00 app[web.1]: at Server.setupListenHandle [as _listen2] (net.js:1338:19)
2018-10-07T15:48:02.936985+00:00 app[web.1]: at listenInCluster (net.js:1396:12)
2018-10-07T15:48:02.936987+00:00 app[web.1]: at Server.listen (net.js:1491:5)
2018-10-07T15:48:02.936989+00:00 app[web.1]: at Function.listen (/app/node_modules/express/lib/application.js:618:24)
2018-10-07T15:48:02.936990+00:00 app[web.1]: at Object.<anonymous> (/app/index.js:29:5)
2018-10-07T15:48:02.936992+00:00 app[web.1]: at Module._compile (module.js:652:30)
2018-10-07T15:48:02.936993+00:00 app[web.1]: at Object.Module._extensions..js (module.js:663:10)
2018-10-07T15:48:02.936995+00:00 app[web.1]: at Module.load (module.js:565:32)
2018-10-07T15:48:02.936996+00:00 app[web.1]: at tryModuleLoad (module.js:505:12)
2018-10-07T15:48:02.936998+00:00 app[web.1]: at Function.Module._load (module.js:497:3)
2018-10-07T15:48:02.936999+00:00 app[web.1]: at Function.Module.runMain (module.js:693:10)
2018-10-07T15:48:02.937001+00:00 app[web.1]: at startup (bootstrap_node.js:191:16)
2018-10-07T15:48:02.937003+00:00 app[web.1]: at bootstrap_node.js:612:3
2018-10-07T15:48:03.081497+00:00 app[web.1]: npm ERR! code ELIFECYCLE
2018-10-07T15:48:03.082095+00:00 app[web.1]: npm ERR! errno 1
2018-10-07T15:48:03.083978+00:00 app[web.1]: npm ERR! server@1.0.0 start: `node index.js`
2018-10-07T15:48:03.088003+00:00 app[web.1]: npm ERR! Exit status 1
2018-10-07T15:48:03.088362+00:00 app[web.1]: npm ERR!
2018-10-07T15:48:03.088616+00:00 app[web.1]: npm ERR! Failed at the server@1.0.0 start script.
2018-10-07T15:48:03.088965+00:00 app[web.1]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
我不知道还能做什么。为什么我可以运行 node index.js
而不是执行相同操作的启动脚本?
【问题讨论】:
可能是范围问题?尝试在您的app.listen
上方添加一个console.log(PORT)
,看看它是否可能与您的预期不同。
尝试不同的端口。如果它没有失败,那么你就知道这是这个端口的问题(可能还有东西在那里运行)。如果它无法重新启动,那么您可以开始查看您的代码/脚本,可能会发生一些奇怪的事情。
天啊,你们看到了吗?我有process.env.NODE
而不是process.env.PORT
我现在想死,哈哈
失败 ....
【参考方案1】:
我不得不将process.env.NODE
更改为process.env.PORT
...
我知道,我知道...
【讨论】:
以上是关于从命令行运行 `node index.js` 可以,但是当我在 package.json 中使用启动脚本时,我得到一个 EADDRINUSE /usr/bin/local/node 错误的主要内容,如果未能解决你的问题,请参考以下文章