Node.js 如何在每次重新启动express app时阻止nodemon更改端口?

Node.js 如何在每次重新启动express app时阻止nodemon更改端口?,node.js,express,nodemon,Node.js,Express,Nodemon,我对nodejs是新手,这是我第一次使用nodemon。我在windows上使用nodejs。在我的package.json文件中有以下内容 "scripts": { "start": "nodemon ./bin/www" } 我使用命令行中的npm start启动我的express应用程序。该进程从一个令人讨厌的默认端口开始。但更令人恼火的是,每次我更改一个文件时,nodemon都会重新启动应用程序,有时会使用完全不同的随机端口号。我尝试将package.json文件中的script部

我对nodejs是新手,这是我第一次使用nodemon。我在windows上使用nodejs。在我的
package.json
文件中有以下内容

"scripts": {
  "start": "nodemon ./bin/www"
}
我使用命令行中的
npm start
启动我的express应用程序。该进程从一个令人讨厌的默认端口开始。但更令人恼火的是,每次我更改一个文件时,nodemon都会重新启动应用程序,有时会使用完全不同的随机端口号。我尝试将
package.json
文件中的
script
部分更改为以下内容,但没有任何区别

"scripts": {
  "start": "nodemon ./bin/www 3000"
},

从注释来看,您似乎是通过一个env变量指定端口,让我们称之为EXPRESS\u port。当您使用npm启动节点进程时,节点进程不会继承它,因为
npm start
使用自己的环境创建了一个新的shell。因此,您最终将端口
未定义的
传递给express。这使得它绑定到一个随机空闲端口。要解决此问题,可以在start命令中设置变量:

"scripts": {
    "start": "EXPRESS_PORT=3000 nodemon ./bin/www"
}

或者,您可以使用
export EXPRESS\u PORT=3000将其从shell中导出,然后运行
npm start
。如果要执行此操作,您需要确保在启动服务器之前始终导出,因此您可能希望将导出放在
~/.profile
~/.bashrc

中。好吧,因此我假设您的意思是nodemon在完全不同的端口上启动很烦人。这不应该发生。nodemon的要点是为您提供一个一致的服务器实例,您可以跨文件更改连接到该实例。您的应用程序中是否有其他东西可能在nodemon实例之前不久在与node.js相同的端口上启动?如果您的抱怨是每次更改文件时nodemon都会重新启动,那么您应该选择不同的监控模块,因为这是nodemon的核心功能……好吧,我应该用更好的措辞。Nodemon每次更改都重新启动并不是我真正的抱怨。我的抱怨是每次重启时都使用新端口。我确认没有其他进程正在使用端口3000抱歉,我无法理解您的问题。让我澄清一下。因此,您的服务器每次重新启动时都会侦听不同的端口(无论是由nodemon还是其他人触发的重新启动)?@NoobCoder重新启动仅由nodemon触发,并且每次重新启动时都会更改端口如果您在没有nodemon的情况下手动重新启动会怎么样?端口是否更改?我只是想缩小范围