2016-05-05 239 views
1

是否建議應用程序的前端和CouchDB/Cloudant或MongoDB作爲數據庫只需Angular,因爲這些數據庫可以直接提供JSON數據?如果我不在Java或Node或PHP中使用任何中間件,它會起作用嗎?我想使用Angular和任何nosql DB。角度與Nosql數據庫

回答

1

對於前端和後端的任何服務器端語言,您都可以使用angular。關於直接連接 - 您可以直接查詢數據庫。每個數據庫都有一個REST API,使您可以直接從客戶端與它進行通信。例如,MongoDB有:https://docs.mongodb.org/ecosystem/tools/http-interfaces/ 希望這有助於。 如果這是明智的?這是一個意見問題,可供討論。

+0

這很可能不可取。您不希望在您的客戶端代碼中管理數據庫憑證,或者在您使用的數據庫發生更改時需要重寫UI。 – opiethehokie

+0

它取決於您的需求,以供您決定。你是正確的,現在你可能會使用套接字或其他API與你和db之間的服務器。另一方面REST api是有原因的。 – yccteam

+0

感謝yccteam您的答案。很有幫助。 – user3001381

3

你可以在技術上開發一個只使用AngularJS調用DBaaS的REST API的全棧應用程序,它可以工作。然而,你不應該這樣做,有以下原因:

  • 您所有的業務邏輯將在客戶端上運行,這意味着任何人都可以看到(!和更改)在瀏覽器中所有的業務領域邏輯,您的安全控制,現場驗證等,使用FireBug或每個瀏覽器中包含的開發人員工具等工具
  • 您將在哪裏放置和管理您的數據庫訪問憑據?
  • 你會得到一個代碼,實在是難以管理,不容易適應未來的變化

記住規則高內聚,鬆耦合

一般來說,你應該始終有某種形式的服務器端邏輯層(「控制器」如果你是熟悉的MVC框架)的所有上述原因,並制定安全可重複使用可維護代碼。如果您需要實現對業務邏輯的更改,則需要轉至API代碼,如果需要更改整個持久性機制,則必須編輯服務器與數據庫的交互,而不是UI等等......否則,每個將來的更改會影響整個應用程序。將不同職責分開的模塊(我們如何表示數據?,需要執行什麼?以及如何呈現結果?)是一種很好的做法。