2013-07-04 188 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