Heroku域名是否指向环境变量PORT?MERN生产部署技术问询
Heroku部署MERN应用的端口相关问题解答
问题1:Heroku域名是否指向环境变量PORT?
Heroku域名不直接指向环境变量PORT。Heroku的域名实际指向其平台的反向代理层,而非你的应用直接使用的端口。
问题2:部署MERN应用时,Express绑定PORT环境变量后,Heroku域名是否能访问服务器?
是的,完全可以。具体逻辑如下:
- Heroku会在应用启动时动态分配一个端口,并通过
PORT环境变量传递给你的应用。你必须让Express服务器绑定到这个PORT,否则应用会启动失败。 - Heroku的反向代理会自动将域名的标准HTTP(80端口)/HTTPS(443端口)请求,转发到你的Express服务器绑定的
PORT端口。用户访问Heroku域名时,无需手动指定端口,就能直接访问到你的Express服务。
举个典型的Express监听代码示例:
const express = require('express'); const app = express(); // 中间件、路由等配置... // 绑定Heroku分配的PORT,本地开发时 fallback到5000端口 const port = process.env.PORT || 5000; app.listen(port, () => { console.log(`Server running on port ${port}`); });
内容的提问来源于stack exchange,提问作者Siddharth Potti
相关产品推荐
相关产品推荐

