首頁 > web前端 > js教程 > MERN 堆疊應用|第2部分

MERN 堆疊應用|第2部分

Patricia Arquette
發布: 2024-10-23 21:26:02
原創
392 人瀏覽過

MERN Stack Application| Part 2

在使用 MERN 堆疊建立的電子商務應用程式的上下文中,讓我們了解一下當使用者嘗試取得產品詳細資訊時請求-回應週期如何運作。

  1. 前端的使用者互動(React)

使用者開啟電子商務網站並想要查看產品的詳細資訊。他們可能會點擊產品清單或搜尋特定商品。

負責前端 UI 的 React 會偵測到此互動並觸發取得產品資料的請求。

React 向後端發出 HTTP 請求(使用 axios、fetch 或類似方法),目標是 /api/products/:id 等端點,其中 :id 是產品的唯一識別碼。

  1. HTTP 請求傳送到後端 (Node.js/Express)

後端伺服器使用 Node.js 和 Express 構建,監聽定義的路由上傳入的 HTTP 請求。

當對 /api/products/:id 的請求到達時,Express 會識別路由並將請求轉送到對應的路由處理程序。

  1. 中介軟體處理(可選)

在處理請求之前,它可能會經過中間件函數。

例如,中間件可能會記錄請求詳細信息,檢查使用者是否經過身份驗證,或驗證請求參數。

如果一切正常,請求將繼續傳送到路由處理程序。否則,中間件可能會傳回錯誤回應(例如「未經授權的存取」)。

  1. 與資料庫(MongoDB)互動

一旦請求到達適當的路由處理程序,Express 就會使用 Mongoose 等 MongoDB 驅動程式來查詢資料庫。

查詢可能如下所示:Product.findById(productId),其中從 URL 中提取 ProductId。

MongoDB 從資料庫中檢索產品詳細信息,包括名稱、價格、描述、圖像和可用性。

  1. 準備並發送回覆

從 MongoDB 取得產品詳細資訊後,Express 會處理資料。

資料被格式化為 JSON 對象,包含有關產品的所有必要資訊。

Express 將此 JSON 回應傳回 React 前端。

  1. React 接收並更新 UI

React 收到回應中的產品詳細資訊。

它使用這些數據來更新使用者介面,顯示產品的名稱、價格、圖片、描述和其他相關資訊。

如果未找到產品或發生錯誤(例如,「產品不可用」),React 會向使用者顯示相應的訊息。

請求-回應流程範例

  1. 使用者操作(React):使用者點擊主頁上名為「無線耳機」的產品。

  2. HTTP 請求:React 向 /api/products/12345 發送 GET 請求,其中 12345 是「無線耳機」的產品 ID。

  3. Express 路由處理:Express 接收請求並檢查是否有 /api/products/:id 的路由。然後它將請求傳遞給相關處理程序。

  4. 資料庫查詢(MongoDB):Express 使用 Mongoose 查詢 MongoDB,執行 Product.findById("12345") 來取得「無線耳機」的詳細資訊。

  5. 回應形成:如果找到產品,Express 會發送 JSON 回應,其中包含以下詳細資訊:

{
"id": "12345",
"name": "無線耳機",
「價格」:59.99,
"description": "具有降噪功能的高品質無線耳機。",
"images": ["image1.jpg", "image2.jpg"],
「庫存」:20
}

  1. React 更新 UI:React 接收此數據並顯示它,向用戶展示有關「無線耳機」的所有資訊。如果發生錯誤(例如「未找到產品」),React 將顯示相應的訊息。

此流程中說明的關鍵概念

非同步請求:React 非同步處理請求,允許使用者在等待回應時與應用程式互動。

一致的資料流:所有元件(React、Express、MongoDB)都透過 JSON 進行通信,確保整個堆疊中的資料流暢。

可擴展性:每個組件都可以獨立擴展,從而更輕鬆地處理不斷增長的流量或大量產品。

此請求-回應週期有效地演示了基於 MERN 堆疊構建的電子商務網站如何檢索產品信息,從而為用戶提供無縫體驗。

以上是MERN 堆疊應用|第2部分的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板