Reactjs 反应和点头

Reactjs 反应和点头,reactjs,express,heroku,Reactjs,Express,Heroku,我在连接react和express节点时遇到问题。在生产环境中,它们可以很好地结合在一起,但在开发环境中,它们没有连接。我读过很多文章,但没有一篇与我合作过。我正在部署heroku。在生产中,如何用heroku url替换本地主机端点 const express=require(“express”); 常量路径=要求(“路径”); 常量app=express(); const publicPath=path.join(uu dirname,“,”./build”); 应用程序使用(express

我在连接react和express节点时遇到问题。在生产环境中,它们可以很好地结合在一起,但在开发环境中,它们没有连接。我读过很多文章,但没有一篇与我合作过。我正在部署heroku。在生产中,如何用heroku url替换本地主机端点

const express=require(“express”);
常量路径=要求(“路径”);
常量app=express();
const publicPath=path.join(uu dirname,“,”./build”);
应用程序使用(express.static(publicPath));
应用程序获取(“*”,(请求,请求)=>{
res.sendFile(path.join(publicPath,“index.html”);
});
const port=process.env.port | 3000;
应用程序侦听(端口,()=>{
log(“服务器在端口上启动”+端口);
});
对于package.json/

    "scripts": {
        "start": "node server/server.js",
        "dev": "react-scripts start",
        "build": "react-scripts build",
        "test": "react-scripts test",
        "eject": "react-scripts eject"
      }

假设您的reactjs和节点应用程序是分开部署的,您可以执行以下步骤:

用于后端的软件包非常流行,并且易于安装

1-)使用以下环境变量将.env文件添加到根文件夹:

MONGO_URL=mongodb://localhost:27017/
const dbUrl = process.env.MONGO_URL;
请注意,应该没有空的空间

2-)在主文件中,在读取任何变量之前,尽快导入
dotenv

require(“dotenv”).config();
3-)现在您可以像这样访问变量:

MONGO_URL=mongodb://localhost:27017/
const dbUrl = process.env.MONGO_URL;
4-)将.env文件放入.gitignore文件

5-)通过在
package.json
中添加用于在Heroku上运行应用程序的部分,指定node.js的版本

例如:

"engines": {
    "node": "10.1"
}
6-)将节点应用程序部署到heroku后,使用PROD值添加变量,如中所述

如果您使用创建了reactjs应用程序,可以执行以下步骤:

1-)将.env文件添加到根文件夹。变量名必须以REACT\u APP\u开头

REACT_APP_API_URL=http://localhost:3001/api
2-)在代码中访问如下变量:

process.env.REACT_APP_API_URL
3-)将.env文件放入.gitignore文件


4-)将reactjs应用程序部署到heroku后,在配置变量部分设置prod变量,就像我们对node应用程序所做的那样。

你的前端与后端分开了吗?你检查了我的答案了吗?谢谢你的解释,我理解这一切。然而,我的问题是更简单,我的应用程序现在只是表象,它的投资组合,所以到目前为止没有api。我的问题是如何在dev和prod上同时运行前端和后端?当然,包裹里应该有零钱。json@MahmoudNafea使用react环境变量,在dev.env文件中输入dev值,对于prod,使用prod值