本地主机firebase后端和react前端在一起,用于调试



我正在构建一个具有firebase后台功能的react网站。

我使用firebase serve本地托管node.js后端,通过express API端点将其连接到我的react代码,并使用react-scripts start测试我的react-frontend应用程序。

我的react应用程序中的所有get请求都使用/some endpoint与我的firebase本地服务器进行通信。但它们在不同的端口上运行。firebase在localhost:5000上为其提供服务,而react live服务器在localhost:3000上托管它。

我尝试了很多方法,但都没有找到任何有用的方法。最后,我将我的react项目添加为firebase项目中的子文件夹,并将firebase.json的托管公共路径设置为我的reactbuild目录。它现在可以工作了,但每次更改时,我都必须在我的react应用程序上运行npm run build,使其将我的应用程序编译到build目录中,这非常缓慢。

做这件事的正确方法是什么?一起调试react应用程序和firebase后端。

我最终使用cors模块在服务器上启用了cross-origin-requests

服务器端代码

const cors = require("cors");

app.get("/test", (req, res) => {
return cors()(req, res, async () => {
res.send("working...");
});
});

服务器端代码

然后在react端添加一个简单的配置文件,在调试和部署测试之间切换,这真的很有帮助。config.js

var domain = "";
// domain = "http://localhost:5000";
export {domain}

然后,每当我在react中使用api时,我只需注释/取消注释第二行,即可在本地测试和部署测试之间切换。


然后每当我使用API时,我都会在所有引用中的每个url之前附加"域",例如获取请求
import { domain } from "config.js";
fetch(domain + "/int-search", ...

然后,它在localhost上运行firebase后端和react应用程序都很好,使用firebase servenpm start作为我的react应用。

相关内容

最新更新