无法理解前端和后端之间的连接
Can't understand the connection between Frontend and Backend
我面临的问题更多的是对网络的理解,而不是对代码的理解,这就是为什么我需要帮助,因为我似乎无法在任何地方找到我的答案。
我只是模模糊糊地了解它,如果我想擅长于此,那还不够好。
我的问题是我不明白这个编码示例中前端和后端是如何通信的。
LINK 到 GitHub 存储库(不是我的,但我遵循了包含此代码的指南)
https://github.com/bradtraversy/mern-tutorial
正如你们所看到的,这是关于 MERN 堆栈的,因此我在前端使用了 axios,在后端使用了 router,在 authService.js 文件中,我使用 post 方法发送数据,我的问题是我的 [=17= userController.js 中的 ]RegisterUser 函数认识到我这样做了,然后将这些东西保存到我制作的 MongoDB 服务器(集群,数据库) .我正在使用桌面 Mongo 指南针(windows 应用程序)来检查所有内容。
更广泛的方式:
在后端 -
您开发其余 api、api 端点和您的软件(逻辑)。
现在休息 api 是两种方式。首先,它以 JSON 格式向前端传送数据,其次,理解您从前端发送的 json 数据并将此数据转换为您的后端理解的格式(python , java),并且此 json 数据可在 api 端点获得。
您从 axios 发送的数据是 json 格式,您在 api 端点发送此数据。
在前端 -
你用axios写get语句在某个url获取数据,这个url是后台创建的api端点。并且您还发送 post 的数据并放置在这个 api 端点。
东西给你google-
- 什么是 Rest Api,以及所有替代方案。
- 什么是 JSON 格式。
- 什么是 api 端点。
- Get、Put、Post、Patch、Delete 等网络方法。
一旦你理解了所有这些,你就可以找到你的 favourite/suitable 后端语言并为你的数据和逻辑创建 apis'。
表示您的前端完全独立于后端,反之亦然。
Rest 框架不仅是一种方法,正如我提到的,还可以找到替代技术。
希望对您有所帮助,如果您有更多疑问,请写在这里。
很难说您对 Express.js/Node.js 有多了解,所以我希望我没有把事情分解得太多 。不过我觉得解释多了总比解释少好。
您所关注的 code-structure 非常简洁,但绝对不是必需的。它将后端代码的每一层功能分解为文件夹类别和单个文件。作者没有将所有内容都放在一个 JavaScript 文件中,而是将路由放在“routes”文件夹中——仅此而已!任何逻辑都由控制器在其各自的“控制器”文件夹中处理,任何 express.js 中间件都在其各自的“中间件”文件夹中。
对于较小的项目,这可能完全没有必要,但对于大型项目来说,这是天赐之物,因为在大型项目中,很容易忽视发生了什么。
现在,回答你的问题 registerUser
如何知道你发送了 post 方法:
- 例如,注册新用户的 POST 请求实际上在 userRoutes.js 中处理(或“识别”)(重要的旁注:注册用户的路由当前是根 url "/",应该是"/register")
- 然后它从 userController.js 文件中调用
registerUser
,该文件包含在 require
顶部
registerUser
然后处理任何一种逻辑并分别响应
我希望这是可以理解的。
TL;DR:registerUser
无法识别任何有关请求的信息,它只会被调用。控制器只做“控制”,路由器只做“路由”。
Axios 是 Javascript 中的 promise-based HTTP 客户端。您可能应该了解 HTTP here。简而言之,HTTP 是一种公认的互联网协议,它允许您的网站在浏览器中从服务器获取某些资源。
使用 MERN 堆栈,您基本上可以使用提供 API 的 Express.js 和存储所有数据的 MongoDB 创建一个服务器。 Express APIs 从您使用 axios 从 React 发送的 HTTP 请求中获取输入,处理您的 API 逻辑,并从 MongoDB 获取数据或将数据存储到 MongoDB。 POST 路由在您的情况下可以命名为 /register
。 React 获取 HTTP 响应并在浏览器上显示结果。
在您的计算机上进行本地开发时,您的计算机充当 http://localhost:5000(或您喜欢的任何端口)的服务器。您位于 localhost:3000 的 React 网站向 5000 发送 HTTP 请求以获取响应。使用 Heroku 或 Netlify 等托管服务在真实服务器上托管 MERN 堆栈项目后,您的 React 网站将使用您设置的 URL 向该服务器发送 HTTP 请求。
顺便说一句,Brad Traversy 是一位非常优秀的 youtuber,我也开始从他的课程中学习全栈开发:)
我面临的问题更多的是对网络的理解,而不是对代码的理解,这就是为什么我需要帮助,因为我似乎无法在任何地方找到我的答案。 我只是模模糊糊地了解它,如果我想擅长于此,那还不够好。 我的问题是我不明白这个编码示例中前端和后端是如何通信的。
LINK 到 GitHub 存储库(不是我的,但我遵循了包含此代码的指南) https://github.com/bradtraversy/mern-tutorial
正如你们所看到的,这是关于 MERN 堆栈的,因此我在前端使用了 axios,在后端使用了 router,在 authService.js 文件中,我使用 post 方法发送数据,我的问题是我的 [=17= userController.js 中的 ]RegisterUser 函数认识到我这样做了,然后将这些东西保存到我制作的 MongoDB 服务器(集群,数据库) .我正在使用桌面 Mongo 指南针(windows 应用程序)来检查所有内容。
更广泛的方式:
在后端 -
您开发其余 api、api 端点和您的软件(逻辑)。 现在休息 api 是两种方式。首先,它以 JSON 格式向前端传送数据,其次,理解您从前端发送的 json 数据并将此数据转换为您的后端理解的格式(python , java),并且此 json 数据可在 api 端点获得。
您从 axios 发送的数据是 json 格式,您在 api 端点发送此数据。
在前端 -
你用axios写get语句在某个url获取数据,这个url是后台创建的api端点。并且您还发送 post 的数据并放置在这个 api 端点。
东西给你google-
- 什么是 Rest Api,以及所有替代方案。
- 什么是 JSON 格式。
- 什么是 api 端点。
- Get、Put、Post、Patch、Delete 等网络方法。
一旦你理解了所有这些,你就可以找到你的 favourite/suitable 后端语言并为你的数据和逻辑创建 apis'。
表示您的前端完全独立于后端,反之亦然。
Rest 框架不仅是一种方法,正如我提到的,还可以找到替代技术。
希望对您有所帮助,如果您有更多疑问,请写在这里。
很难说您对 Express.js/Node.js 有多了解,所以我希望我没有把事情分解得太多 。不过我觉得解释多了总比解释少好。
您所关注的 code-structure 非常简洁,但绝对不是必需的。它将后端代码的每一层功能分解为文件夹类别和单个文件。作者没有将所有内容都放在一个 JavaScript 文件中,而是将路由放在“routes”文件夹中——仅此而已!任何逻辑都由控制器在其各自的“控制器”文件夹中处理,任何 express.js 中间件都在其各自的“中间件”文件夹中。 对于较小的项目,这可能完全没有必要,但对于大型项目来说,这是天赐之物,因为在大型项目中,很容易忽视发生了什么。
现在,回答你的问题 registerUser
如何知道你发送了 post 方法:
- 例如,注册新用户的 POST 请求实际上在 userRoutes.js 中处理(或“识别”)(重要的旁注:注册用户的路由当前是根 url "/",应该是"/register")
- 然后它从 userController.js 文件中调用
registerUser
,该文件包含在require
顶部 registerUser
然后处理任何一种逻辑并分别响应
我希望这是可以理解的。
TL;DR:registerUser
无法识别任何有关请求的信息,它只会被调用。控制器只做“控制”,路由器只做“路由”。
Axios 是 Javascript 中的 promise-based HTTP 客户端。您可能应该了解 HTTP here。简而言之,HTTP 是一种公认的互联网协议,它允许您的网站在浏览器中从服务器获取某些资源。
使用 MERN 堆栈,您基本上可以使用提供 API 的 Express.js 和存储所有数据的 MongoDB 创建一个服务器。 Express APIs 从您使用 axios 从 React 发送的 HTTP 请求中获取输入,处理您的 API 逻辑,并从 MongoDB 获取数据或将数据存储到 MongoDB。 POST 路由在您的情况下可以命名为 /register
。 React 获取 HTTP 响应并在浏览器上显示结果。
在您的计算机上进行本地开发时,您的计算机充当 http://localhost:5000(或您喜欢的任何端口)的服务器。您位于 localhost:3000 的 React 网站向 5000 发送 HTTP 请求以获取响应。使用 Heroku 或 Netlify 等托管服务在真实服务器上托管 MERN 堆栈项目后,您的 React 网站将使用您设置的 URL 向该服务器发送 HTTP 请求。
顺便说一句,Brad Traversy 是一位非常优秀的 youtuber,我也开始从他的课程中学习全栈开发:)