Node.js 从同一服务器上的本地主机获取

Node.js 从同一服务器上的本地主机获取,node.js,server,webserver,fetch-api,Node.js,Server,Webserver,Fetch Api,我在同一台linux服务器上运行前端(React)和后端(nodejs) 在我的前端,我有一个fetch到后端的请求,我必须将其指定为fetch('http://10.25.248.238:3001/)、IP(本地,因为此站点供公司内部使用)和后端端口 有没有办法避免硬编码此后端IP地址,以便在前端和后端都移动到另一台服务器时仍能正常工作 我试过http://localhost:3001但这实际上是试图从网站访问者的本地主机获取信息获取('/')也不起作用 注册域名是不合适的,因为此网站仅用于内

我在同一台linux服务器上运行前端(React)和后端(nodejs)

在我的前端,我有一个
fetch
到后端的请求,我必须将其指定为
fetch('http://10.25.248.238:3001/)
、IP(本地,因为此站点供公司内部使用)和后端端口

有没有办法避免硬编码此后端IP地址,以便在前端和后端都移动到另一台服务器时仍能正常工作

我试过
http://localhost:3001
但这实际上是试图从网站访问者的本地主机获取信息<代码>获取('/')也不起作用


注册域名是不合适的,因为此网站仅用于内部使用。

一个简单的解决方案是在您的网页设置中定义环境变量并将其传递到React应用程序

您可以创建dev.webpack.config.js和prod.webpack.config.js,并在每个配置文件中使用webpack.DefinePlugin:

new webpack.DefinePlugin({
   BASE_URL: 'YOUR_SERVER_BASE_URL'
});
在React应用程序中,您可以使用process.env.BASE_URL引用它们。例如:

let url = process.env.BASE_URL + '/user';

当你说“前端和后端移动到另一台服务器”时,你的意思是它们将始终位于同一台机器上,还是后端将移动到一台机器上,前端移动到另一台机器上?前端和后端将始终位于同一台机器上。我应该将这两个文件放在哪里?我还需要做什么?不熟悉webpack,我使用了
create-react-app
。似乎Facebook团队没有为开发者提供太多的自由来扩展当前的create-react-app。查看这篇文章:我认为创建React应用程序的最好方法是通过一个著名的yeoman生成器或一些好的样板示例,这样你就可以更好地控制设置、环境等。我将声明2个变量,并根据
process.env.NODE\u env===“development”
进行选择。不过,当前端和后端都移动到新服务器时,必须手动编辑服务器url。