如何在反应中隐藏数据库信息?
How to hide database info in react?
我有一个可以处理一些静态 html 文件的虚拟主机服务器:
+-- public_ftp
+-- temp
+-- logs
+-- mail
...
+-- public_html
+-- www
+-- index.html
+-- blog
+-- index.html
哪个 www
文件夹句柄 www.mydomain.com
和 blog
文件夹句柄 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,使用你喜欢的任何框架,这只是一个例子。
我有一个可以处理一些静态 html 文件的虚拟主机服务器:
+-- public_ftp
+-- temp
+-- logs
+-- mail
...
+-- public_html
+-- www
+-- index.html
+-- blog
+-- index.html
哪个 www
文件夹句柄 www.mydomain.com
和 blog
文件夹句柄 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,使用你喜欢的任何框架,这只是一个例子。