【发布时间】:2020-04-04 08:54:20
【问题描述】:
我有一个节点应用程序部署到 Elastic Beanstalk。我有运行客户端以发出 HTTP 请求的 javascript。客户端 javascript 指的是在 URI 中硬编码端口的路由。
Elastic Beanstalk 侦听端口 8081。在我的 app.js 文件中,我可以编写 const port = process.env.PORT || 3000 并且效果很好(因为它在服务器端运行)。
我遇到的困难在于我的客户端 javascript。假设我有这样的东西
fetch('http://localhost:3000/users/login', {...})
要在 Elastic Beanstalk 上运行,我需要将其更改为 8081,但如果我尝试像在 app.js 中那样使其动态化,则找不到 process 变量。具体来说,如果我将路线更改为
const port = process.env.PORT || 3000
fetch('http://localhost:' + port + '/users/login', {...})
然后我收到以下错误:ReferenceError: Can't find variable: process。
我想我理解问题的症结所在(环境变量仅在服务器上可用),但我是 Node/Express 菜鸟,我不确定访问 PORT 环境的最佳方法是什么客户端上的变量。
【问题讨论】:
标签: javascript node.js amazon-web-services express amazon-elastic-beanstalk