javascript - 英雄库 : how to get the envPort on other js files

标签 javascript node.js heroku socket.io

我试图让我的 Node 应用程序在 heroku 上运行,但我偶然发现了一个常见问题,但我无法解决它。

我的项目是一个由三部分组成的系统,包括:

  • 一个运行 express 和 socket.io 的服务器文件
  • express Node 服务器公共(public)文件夹中的“网络应用程序”
  • 一个独立的 Node 应用程序,在我的电脑上运行,链接到一个 arduino 开发板

在我的电脑上一切运行良好,因为每个人都从同一个 ip/端口监听 Node 服务器。但在 herku 中,由于端口是动态的,我无法让其他两个组件知道连接到哪里。

我这样定义我的端口:

var port = process.env.PORT || 5000;

并通过 console.log 语句记录服务器上的端口。

检查我的日志几次,然后查看 heroku 文档后,我意识到我不能在 heroku 上有静态端口。

所以我对如何让另外两个组件获得 heroku 端口有点迷茫。

旁注:如果我无法让它工作,这是我将尝试实现的解决方案

  1. 将 Web 服务器和 io 服务器分开,这样我就可以监听 IO 服务器本身,这个解决方案有效,但我更希望只运行一个 heroku 实例
  2. 让 io 服务器监听 express 服务器事件,它应该可以工作……但这并不能解决我计算机上的部分问题。
  3. 跳一座大桥,解决不了任何问题,反而会使问题变得不那么重要。

感谢您花时间阅读我的存在主义问题,并提前感谢您的帮助

最佳答案

要将外部应用程序连接到 heroku 应用程序,您不需要知道端口。由于该应用程序可通过域名访问,您可以简单地连接到该域名(例如 app_name.herokuapps.com,或者如果您愿意,也可以获取自己的域)。

关于javascript - 英雄库 : how to get the envPort on other js files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17143707/

相关文章:

javascript - Puppeteer .click 悬停而不是点击

node.js - 验证 Auth0 JWT 抛出无效算法

reactjs - 推特卡 - "WARN: No metatags found"

mysql - Heroku 错误 : Please install the postgresql adapter but I'm using mysql, 那么为什么我会看到此错误?

javascript - 使用 BrowserWindow.webContents.send 在渲染器之间发送大对象时 Electron 失败

javascript - Shiny 的自定义 selectInput/selectizeInput

javascript - ECONNREFUSED 从 NodeJS 运行本地主机服务器

mysql - 部署到 Heroku 错误。提供日志

php - Ajax 调用不断返回 null

javascript - Node.js 使用 Express 列出目录下的文件