Node.js React/Node:当前运行时环境的动态主机和端口(客户端和服务器)

Node.js React/Node:当前运行时环境的动态主机和端口(客户端和服务器),node.js,reactjs,Node.js,Reactjs,反应^0.14.0 节点^5.0.0 Express ^4.0.0 我正在开发React应用程序,我无法再为我的客户机硬编码主机和端口 因为现在我将在云中部署服务器或在本地运行服务器之间切换,所以我需要为客户端应用程序创建一种方法来确定其动态主机和端口,以便向服务器的正确端点(本地或web上)发出http请求 由于所有的请求都指向服务器的“同一来源”,我想有两种方法来设置它 1) (简单方法)客户端:在客户端初始化时或在每个请求之前抓取“位置” 2) 服务器端:使用服务器的配置确定主机和端口,并

反应^0.14.0

节点^5.0.0

Express ^4.0.0

我正在开发React应用程序,我无法再为我的客户机硬编码主机和端口

因为现在我将在云中部署服务器或在本地运行服务器之间切换,所以我需要为客户端应用程序创建一种方法来确定其动态主机和端口,以便向服务器的正确端点(本地或web上)发出http请求

由于所有的请求都指向服务器的“同一来源”,我想有两种方法来设置它

1) (简单方法)客户端:在客户端初始化时或在每个请求之前抓取“位置”

2) 服务器端:使用服务器的配置确定主机和端口,并在服务器端渲染期间将其作为初始状态的一部分发送

第一种方法肯定是最简单的方法,但我觉得如果我有更多部署服务器和在不同环境之间切换的经验,我会用第二种方法找到更合理的方法

我认为经验丰富的团队知道实现这一点的常见惯例,但没有许多在线生产级示例-我可能会像
”\_(ツ)_/“

服务器端:

使用webpack,尤其是在绑定应用程序时,您可以插入正确的主机和端口。正确的主机和端口来自。选择一个或另一个取决于脚本参数(例如,
生产
)。这对我很有用。这是我的堆栈:

我根据需要(生产、云、本地等)使用不同的端口和主机创建配置文件。 我使用。 在我的网页包配置中导入时,我的网页包配置中有一个节点:

....
plugins: [
  new dwebpack.DefinePlugin({
    __LOCATION__: production ? rcConfig.location1 : rcConfig.location2
  })
],
....  
然后我可以在我的javascript代码中编写
\uuuuuuuuuuuuuuuuuuuuuuuuuuu

<a href={__LOCATION__+"/api/todo"}>see todo</a>

在进行网页打包时,它将被其值替换

希望这有帮助:)