2016-10-01 138 views

回答

3

在客戶端Meteor中,流星運行MiniMongo,一個jong的mongoDB API實現。

寫在docs

在客戶端,有一個MongoDB的數據庫, 而事實上沒有直接連接到它的同步API是不可能的(也可能是你想要 )。相反,在客戶端上,集合是數據庫的客戶端緩存 。這要歸功於Minimongo庫 - 一個 內存中的所有JS,實現了MongoDB API。

對於寫入請求 - 客戶端保存反映在MiniMongo中的數據,然後傳送到Meteor服務器。根據允許/拒絕規則,數據可能會寫入MongoDB服務器或被拒絕。 (假設,insecure包被移除)

簡而言之,Client(MiniMOngo)和Meteor Server通過DDP進行通信,Meteor Server和MongoDB通過NodeJS MongoDB Driver進行通信。所有來自客戶端的通信都轉到服務器,並根據定義的規則可能/不可以寫入MongoDB數據庫。

流星客戶端數據庫請求的安全性如何?
答案是'It Depends'。根據流星docs,建議不要依賴允許/拒絕規則來確保安全性。它總是喜歡通過方法來做到這一點爲here

一些資源討論:
Allow/Deny Rules in Meteor
Collections in Meteor
Read about MiniMongo Here