Node.js 错误:使用nodemon启动我的应用程序时,连接EConRefuse127.0.0.1:3000

Node.js 错误:使用nodemon启动我的应用程序时,连接EConRefuse127.0.0.1:3000,node.js,nodemon,Node.js,Nodemon,我对Node.js非常陌生,我在全球安装了nodemon,但当我在终端中使用npm start命令启动我的应用程序时,我确实收到了以下消息: vinnytwice@Vinnys-iMac fixit_server_node % npm start > fixit_server_node@1.0.0 start > node server.js App executing to port 3000 如果我在终端中使用命令nodemon start,我会得到: vinnytwic

我对Node.js非常陌生,我在全球安装了
nodemon
,但当我在终端中使用
npm start
命令启动我的应用程序时,我确实收到了以下消息:

vinnytwice@Vinnys-iMac fixit_server_node % npm start

> fixit_server_node@1.0.0 start
> node server.js

App executing to port  3000
如果我在终端中使用命令
nodemon start
,我会得到:

vinnytwice@Vinnys-iMac fixit_server_node % nodemon start
[nodemon] 2.0.7
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node start index.js`
[nodemon] clean exit - waiting for changes before restart
没有在任何端口上显示任何执行,事实上,在命中端点时,我得到
错误:connect econnrefered127.0.0.1:3000
。 如果我改为使用命令
nodemon server.js
启动它,那么它确实可以工作


为什么
npm start
启动了
server.js
文件而
nodemon start
没有?有什么我没有设置好的吗?

nodemon
不是npm的替代品,它们完全不同。
您可以粗略地认为
nodemon
node
的一个下拉列表

nodemon是节点的替换包装器。要使用nodemon,请在执行脚本时替换命令行上的单词node

资料来源:

因此,如果您的npm脚本

"start": "node server.js"
添加另一个npm脚本

"dev": "nodemon server.js"
您可能希望在生产环境中使用
npm start
,在开发环境中使用
npm run dev

您看到的是
ECONNREFUSED
错误,因为在
package.json
中有一个字段

"main": "index.js"
当您执行
nodemon start
时,nodemon将获取该值,并实际运行
node start index.js
,如日志所示

如果没有给出脚本,nodemon将测试package.json文件,如果找到,将运行与主属性关联的文件

资料来源:

您的
index.js
没有设置服务器,因此当您尝试访问
127.0.0.1:3000
以命中您的端点时,那里没有运行任何东西,因此您会得到
econnrefered
错误

请注意这一行

starting `node start index.js`
命令
nodemon start
的输出表明执行文件
index.js
,而不是
server.js
。您需要检查
package.json
文件,查看程序的主文件是什么

从nodemon的npm页面

如果您的应用程序有package.json文件,则可以省略主 脚本,nodemon将读取主脚本的package.json 属性,并将该值用作应用程序

nodemon还将在中搜索scripts.start属性 package.json(从nodemon 1.1.x开始)


没错,确实是
“main”:“index.js”
package.json
文件中。我不明白为什么
npm start
读取server.js文件。。我在哪里可以找到npm脚本?@Vincenzo它在
package.json
的“脚本”下。请参考文档,我知道,但我没有在那里放脚本..我明白了。如果您没有
脚本
并运行
npm start
,它将默认执行
node server.js
。看看这个,