如何在每次重启Express应用程序时停止nodemon更改端口?

时间:2015-09-06 18:26:35

标签: node.js express nodemon

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

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

我从命令行使用npm start来启动我的快递应用程序。该过程以一个令人讨厌的默认端口开始。但更令人讨厌的是,每次我更改文件nodemon都会重新启动应用程序,有时候会使用完全不同的随机端口号。我尝试将script文件中的package.json部分更改为以下内容,但这没有任何区别

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

1 个答案:

答案 0 :(得分:1)

从评论看来,您通过env变量指定端口,让我们称之为EXPRESS_PORT。当您使用npm启动它时,节点进程不会继承它,因为npm start会创建一个具有自己环境的新shell。所以你最终通过端口undefined来表达。这使它绑定到随机自由端口。要解决此问题,您可以在启动命令中设置变量:

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

或者您可以使用export EXPRESS_PORT=3000从shell导出它,然后运行npm start。如果您这样做,则需要确保在启动服务器之前始终导出,因此您可能希望将导出放在~/.profile~/.bashrc中。