2013-07-04 222 views
7

我已經建立了一個數據庫Node.jsMongoDB,我正在寫一個應用程序Angular.js應在條目調用從我的數據庫,以及能夠在這些條目編寫。將MongoDB連接到前端?

我知道,直接從JavaScript寫入數據庫存在一些安全問題,但我對這類事情完全陌生。更重要的是,我找不到有關如何將數據從MongoDB發送到我的前端的任何說明,以便我可以真正使用它!

如何將兩者結合在一起?在Node.js中,我使用javascript require函數來加載我的數據庫並從中讀取/寫入,但我無法找到在瀏覽器中執行此操作的方法。在node我使用mongojs模塊將兩者連接在一起,但這不適用於我的Angular應用程序,因爲我無法使用require

的主要問題是:如何在MongoDB中加載到前端?

編輯:我認爲這是有關調用的MongoDB的前端,而不是特定的角度,一個更基本的問題。如果我錯了,請告訴我。

+2

我不知道我理解。你想從瀏覽器直接連接到數據庫?這是一個非常糟糕的主意。這就是爲什麼要使用NodeJS(或任何其他Web服務器)的原因:將數據從數據庫加載到WebServer,然後將其合併到HTML/JSON /您想要的任何格式,然後通過HTTP將其發送到瀏覽器。 – freakish

+0

你有什麼問題試圖在前端需要mongojs模塊?你需要一個模塊加載器,例如[RequireJS](http://requirejs.org/)。 –

回答

11

簡短的回答:你不知道。

長答案: MongoDB不是設計爲直接向客戶端公開數據。客戶端與Web服務器上的應用程序進行交互 - 在Node.js中實現您的情況 - Web服務器與數據庫進行通信。

+---------+ +---------+ +---------+ 
|Browser | | Node.js | | MongoDB | 
|  ------->  | |   |  
|   | |   | |   | 
|   | |  ------->  | 
|   | |   | |   | 
|   | |   | |   | 
|   | |  <-------  |  
|   | |   | |   | 
|  <-------  | |   | 
|   | |   | |   | 
+---------+ +---------+ +---------+ 

這意味着在實踐中,在用戶的瀏覽器執行的JavaScript客戶端應用程序(通過的WebSockets或一些其它方法通過正常的請求,通過XMLHttpRequest)向Node.js的一個請求。 Node.js接受這個請求,然後聯繫MongoDB獲取滿足它的數據。當Node.js從數據庫接收到數據時,它使用它來構建響應,並將其發送到客戶端。

客戶端應用程序沒有意識到服務器使用後端數據庫來完成請求。

我學習推薦你是出數據庫保持現在。使用angular.js使客戶端從Node.js服務器應用程序加載一些靜態數據。當你得到這個工作時,擴展服務器端以從MongoDB獲取數據。

+1

我實際上已經完成了您的學習建議 - 我通過JSON編寫了加載數據的AngularJS應用程序。問題是,我真的不明白(也沒有能夠在我的相當廣泛的搜索中找到)如何將數據庫連接到前端。我很高興使用節點作爲中間人,但我從來沒有看到客戶端 - >節點 - >數據庫的任何實現。你能建議任何資源,我可以更多地瞭解這個嗎?我主要是一名前端開發人員,所以這很多都是我的頭腦。 – Jascination