问题描述
我在 Heroku 上创建了一个应用,并拉取了我的 GitHub 存储库。
我的应用显示良好,但我的后端端口在每次构建新版本时都会发生变化。
这是我尝试设置它的方式:
download.py
即使我只设置了 const PORT = process.env.PORT || 5000
const corsOptions = {
origin: 'localhost',credentials: true,optionsSuccessstatus: 200
}
app.use(cors(corsOptions));
app.use(express.json());
app.use(express.urlencoded({
extended: true
}))
app.use(cookieParser())
if (process.env.NODE_ENV === "production") {
app.use(express.static('client/build'))
}
// routes
app.use('/api',routes)
//server
app.listen(PORT,() => {
console.log(`Listening on port ${process.env.PORT}`)
})
,我也有一个类似 5000
的端口
知道如何为我的后端设置固定端口吗?
我需要它,因为我的前端 (React) 的 axios 请求需要端口(显然)
解决方法
无法在 Heroku 上对端口进行硬编码:应用程序必须绑定到运行时提供的 PORT
。
每个应用程序都可以部署在 Web Dyno 中,因此您可以使用 herokuapp.com
URL 调用后端。
将您的应用程序部署到 heroku 后,heroku 会为您提供一个链接,例如mynewapp.heroku.com
。
现在在前端(React)的 axios 请求中,替换所有
http://localhost:5000
和 mynewapp.heroku.com
。
这里不需要指定任何端口号。