我试图让我的 Node 应用程序在 heroku 上运行,但我偶然发现了一个常见问题,但我无法解决它。
我的项目是一个由三部分组成的系统,包括:
- 一个运行 express 和 socket.io 的服务器文件
- express Node 服务器公共(public)文件夹中的“网络应用程序”
- 一个独立的 Node 应用程序,在我的电脑上运行,链接到一个 arduino 开发板
在我的电脑上一切运行良好,因为每个人都从同一个 ip/端口监听 Node 服务器。但在 herku 中,由于端口是动态的,我无法让其他两个组件知道连接到哪里。
我这样定义我的端口:
var port = process.env.PORT || 5000;
并通过 console.log 语句记录服务器上的端口。
检查我的日志几次,然后查看 heroku 文档后,我意识到我不能在 heroku 上有静态端口。
所以我对如何让另外两个组件获得 heroku 端口有点迷茫。
旁注:如果我无法让它工作,这是我将尝试实现的解决方案
- 将 Web 服务器和 io 服务器分开,这样我就可以监听 IO 服务器本身,这个解决方案有效,但我更希望只运行一个 heroku 实例
- 让 io 服务器监听 express 服务器事件,它应该可以工作……但这并不能解决我计算机上的部分问题。
- 跳一座大桥,解决不了任何问题,反而会使问题变得不那么重要。
感谢您花时间阅读我的存在主义问题,并提前感谢您的帮助
最佳答案
要将外部应用程序连接到 heroku 应用程序,您不需要知道端口。由于该应用程序可通过域名访问,您可以简单地连接到该域名(例如 app_name.herokuapps.com
,或者如果您愿意,也可以获取自己的域)。
关于javascript - 英雄库 : how to get the envPort on other js files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17143707/