我面臨的問題在某種程度上與網路理解有關,而不是對代碼的理解,這就是為什么我需要幫助,因為我似乎無法在任何地方找到答案。我只是模糊地理解它,如果我想擅長這一點,這還不夠。我的問題是我不明白在這個編碼示例中前端和后端是如何通信的。
指向 GitHub 存盤庫的 鏈接(不是我的,但我遵循了包含此代碼的指南) https://github.com/bradtraversy/mern-tutorial
正如你們所看到的,這是關于 MERN 堆疊的,因此我確實在前端使用了axios ,在后端使用了路由器,在authService.js檔案中,我使用 post方法發送資料,我的問題是我的RegisterUser在userController中如何發揮作用。 Node.js認識到我這樣做了,然后將這些東西保存到我制作的 MongoDB 服務器(集群、資料庫)中。我正在使用桌面 Mongo Compass(Windows 應用程式)來檢查所有內容。
uj5u.com熱心網友回復:
很難說你對 Express.js/Node.js 有多么了解,所以我希望我不會把事情分解得太多。但是,我認為我解釋得太多總比解釋得少好。
您遵循的代碼結構非常簡潔,但絕不是必需的。它將后端代碼的每一層功能分解為檔案夾類別和單個檔案。作者沒有將所有內容都放在單個 JavaScript 檔案中,而是將路由放在“routes”檔案夾中 - 僅此而已!任何邏輯都由控制器在它們各自的“控制器”檔案夾中處理,任何 express.js 中間件都在它們各自的“中間件”檔案夾中。這對于小型專案來說可能完全沒有必要,但對于大型專案來說是天賜之物,因為大型專案很容易放松對發生的情況的監督。
現在,要解決您的問題,您如何registerUser知道您發送了 post 方法:
- 例如,注冊新用戶的 POST 請求實際上是在 userRoutes.js 中處理(或“識別”)的(重要說明:注冊用戶的路由當前是根 url “/”,可能應該是“/register ")
- 然后它呼叫
registerUser來自 userController.js 的檔案,該檔案包含require在頂部 registerUser然后處理任何型別的邏輯并分別回應
我希望這有點可以理解。TL;DR:registerUser不識別任何關于請求的內容,它只被呼叫。控制器僅用于“控制”,路由器僅用于“路由”。
uj5u.com熱心網友回復:
以更廣泛的方式:
在后端 -
您開發 rest api、api 端點和您的軟體(邏輯)。現在rest api是兩種方式。首先,它將資料以 JSON 格式傳遞給前端,其次,了解您從前端發送的 json 資料,并將此資料轉換為您的后端可以理解的格式(python,java),并且此 json 資料可在 api端點。
您從 axios 發送的資料是 json 格式,并且您在您的 api 端點發送此資料。
在 Frotend -
你用 axios 撰寫 get 陳述句來獲取某個 url 的資料,這個 url 是后端創建的 api 端點。而且您還發送資料以進行發布并放在此 api 端點。
你可以用谷歌搜索的東西-
- 什么是 Rest Api,以及所有替代方案。
- 什么是 JSON 格式。
- 什么是 api 端點。
- 網路方法,例如 Get、Put、Post、Patch、Delete。
一旦你理解了所有這些,你就可以找到你最喜歡/合適的后端語言,并為你的資料和邏輯創建 api。
意味著您的前端完全獨立于后端,反之亦然。
正如我所提到的,Rest 框架不僅是一種方法,還可以找到替代技術。
希望這會有所幫助,如果您有更多疑問,請寫在這里。
uj5u.com熱心網友回復:
Axios 是 Javascript 中基于 Promise 的 HTTP 客戶端。您可能應該在此處了解 HTTP 。簡而言之,HTTP 是一種普遍認可的互聯網協議,它允許您的網站在瀏覽器中從服務器獲取某些資源。
使用 MERN 堆疊,您基本上可以使用 Express.js 創建一個服務器,該服務器提供 API 和存盤所有資料的 MongoDB。Express API 從您使用 axios 從 React 發送的 HTTP 請求中獲取輸入,處理您的 API 邏輯,并從 MongoDB 獲取資料或將資料存盤到 MongoDB。可以根據/register您的情況命名 POST 路由。React 獲取 HTTP 回應并在瀏覽器上顯示結果。
在您計算機上的本地開發中,您的計算機充當 http://localhost:5000(或您喜歡的任何埠)的服務器。你在 localhost:3000 的 React 網站向 5000 發送 HTTP 請求以獲取回應。一旦您使用 Heroku 或 Netlify 等托管服務在真實服務器上托管您的 MERN 堆疊專案,您的 React 網站將使用您設定的 URL 向該服務器發送 HTTP 請求。
順便說一句,Brad Traversy 是一個非常好的 youtuber,我也開始從他的課程中學習全堆疊開發 :)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/459362.html
下一篇:MongoDB|排序不適用于聚合
