我正在為我的投資組合專案構建一個電子商務網站,我想知道應該在哪里為購物車進行計算。
通常我使用 react 并創建一個模型檔案夾、路由檔案夾和控制器檔案夾,但是我教 Angular 的方式似乎服務就像路由一樣,對資料庫的實際呼叫是在我所在的節點服務器檔案中完成的當然我可以分成一個單獨的控制器檔案。我的問題是在我將訂單發送到資料庫之前應該在哪里完成購物車的計算?我想在下訂單之前在購物車組件中完成它,還是應該在服務或控制器的后端完成?我只是想弄清楚標準是什么
uj5u.com熱心網友回復:
我不知道您確切需要的計算,但由于它是一個電子商務網站,我認為它是簡單的數學運算,例如結帳的總付款金額。
服務器的主要作用是與資料庫通信。如果任務不涉及與資料互動,您可以在客戶端進行計算。將詳細資訊留在客戶端可以讓您訪問公式的詳細資訊,并減少客戶端和服務器之間的通信時間。
uj5u.com熱心網友回復:
在撰寫 Angular 應用程式時,我認為遵守以下原則很重要:
組件 - 應該只負責簡單的視圖邏輯,不應該接觸服務器,也不應該進行與視圖無關的復雜計算和/或邏輯。
服務 - 應該對(可重用/共享)和復雜邏輯承擔單一責任,進行出站通信并與服務器聯系,并充當資料存盤(使用 BehaviorSubjects)。
因此,如果您的計算需要更新購物車的視圖,我會投票認為這些計算需要在組件中進行。如果需要您的計算來更新專案或發送到服務器的請求,則需要在服務處進行計算。
請記住,組件“不應該知道”資料是如何到達它的,或者它是如何被操縱或發送到服務器的。組件應該只知道,給定任何資料 - 如何在視圖中呈現它,而不應該“擔心”這些資料是如何到達它的。同樣,組件在發送到服務器之前不應該知道資料是如何計算的,這屬于處理購物車資料并構建對服務器的請求的服務的職責。
但是,您必須始終考慮應用程式的安全性,以及客戶端的惡意資料修改是否會影響您的購物車。如果此類計算影回應用程式的安全性 - 如果未完全委托給服務器,則至少應在服務器上對其進行驗證。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/399734.html
