gpt4 book ai didi

node.js - 由于硬编码端口号,无法将 node.js 应用程序部署到 heroku

转载 作者:搜寻专家 更新时间:2023-10-31 22:58:34 26 4
gpt4 key购买 nike

我在将 angular-seed 应用程序 ( https://github.com/angular/angular-seed ) 部署到 Heroku 时遇到问题。我认为问题在于当 heroku 需要通过 process.env.PORT 变量动态分配端口时,端口号被硬编码到服务器启动脚本中。查看 heroku 日志确认:Starting up http-server, serving ./on port: 8000。我的 Procfile 包含 web: npm start,我的 package.json 文件包含

"scripts": {
"prestart": "npm install",
"start": "http-server -a localhost -p 8000"
}

我怎样才能改变它,以便我的服务器在本地开发环境中仍然可以使用 foreman start 正常工作,但是在使用 heroku 时动态分配一个端口?我想要它,以便当我在本地开发环境中键入 foreman start 时,将在 localhost:8000 创建一个服务器,但是当我将应用程序部署到 heroku 时,Heroku 将选择该端口。

最佳答案

我不是 Node 开发者,但你为什么不在你的 start 脚本中使用 Heroku 提供的端口号?

即。 “开始”:“http-server -a localhost -p $PORT”

然后它将在 Heroku 上运行。如果您在本地运行,只需 export PORT=8000,或者如果您使用 运行,则将 PORT=8000 放入您的 .env 文件>foreman,你可以开始了。

如果没有设置端口,您也可以添加 bash 魔法来设置端口,方法是将 $PORT 替换为 ${PORT-8000}

(未经测试)

关于node.js - 由于硬编码端口号,无法将 node.js 应用程序部署到 heroku,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24503059/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com