如何在反应中隐藏数据库信息?

How to hide database info in react?

我有一个可以处理一些静态 html 文件的虚拟主机服务器:

+-- public_ftp
+-- temp
+-- logs
+-- mail
...
+-- public_html
    +-- www
        +-- index.html
    +-- blog
        +-- index.html

哪个 www 文件夹句柄 www.mydomain.comblog 文件夹句柄 blog.mydomain.com。托管服务器是 运行 cPanel
我使用 React 编写我的网站,并使用 npm run build 来获得结果,并将所有内容放入 www 文件夹中,它工作正常。现在我的反应需要从 mysql 数据库中查询一些信息。有没有什么好的方法可以查询数据库并向用户隐藏用户名和密码?我可以对构建脚本中的最终 js 文件进行编码,但这看起来很奇怪。
我也可以写 express 来处理来自 React 的一些请求。但是,我应该怎么做才能将快速代码放入托管服务器?我应该放在哪里?我应该在 public_html 下创建 api 文件夹并使用 api.mydomain.com 发送请求吗?我在开发环境中使用 localhost 和不同的端口,但我不知道端口在生产环境中如何工作。我认为最终将所有内容从 localhost:8000 更改为 api.mydomain.com 是个坏主意。我还能在托管服务器中使用 localhost 吗?我可以在 react 文件夹中写 express 或在 express 文件夹中写 react 因此我可以 运行 一次构建脚本来打包前端和后端吗?如果我将服务器代码上传到某个地方,用户是否能够看到服务器代码?

你永远不应该连接你的数据库并直接在你的前端进行查询,但是你可以像你所说的那样用“api”子域来表达api。

我认为关于如何在 cPanel 部署 node.js 服务器的教程可以帮助您解决其他问题:https://blog.cpanel.com/how-to-host-a-node-js-application-with

如果react和node.js都是运行在同一个主机ip地址,你仍然可以使用localhost与后端通信,否则就使用api 子域,它将正常工作。

也别担心,用户将看不到您的服务器端代码。

编辑: 你也可以像 The Fool 在评论中建议的那样使用 Fastify,使用你喜欢的任何框架,这只是一个例子。