将MongoDB连接到前端?

时间:2013-07-04 11:34:00

标签: javascript mongodb

我已经使用Node.jsMongoDB构建了一个数据库,我正在编写一个Angular.js应用程序,该应用程序应该从我的数据库中调用条目,并且能够编写在那些条目中。

我知道直接从javascript写入数据库存在一些安全问题,但我对这类事情完全不熟悉。更重要的是,我找不到有关如何从MongoDB向我的前端发送数据的任何说明,以便我可以实际使用它!

如何将两者捆绑在一起?在Node.js中,我使用javascript require函数加载到我的数据库中并从中读取/写入,但我无法找到在浏览器中执行此操作的方法。在node中,我使用mongojs模块将两者连接在一起,但这在我的Angular应用中不起作用,因为我无法使用require

主要问题是:如何将MongoDB加载到前端?

编辑:我认为这是一个关于将MongoDB调用到前端而不是特定于角度的更基本的问题。如果我错了,请告诉我。

1 个答案:

答案 0 :(得分:12)

简答:你没有。

长答案: MongoDB不是为了直接向客户端公开数据而设计的。客户端与Web服务器上的应用程序交互 - 在您的情况下在Node.js中实现 - 并且Web服务器与数据库进行通信。

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

这实际上意味着在用户浏览器中执行的javascript客户端应用程序向Node.js发送请求(通过普通页面请求,通过Websockets通过XmlHttpRequest或其他方法)。 Node.js接受此请求,然后联系MongoDB以获取实现它所需的数据。当Node.js从数据库接收数据时,它使用它来构建响应,并将其发送给客户端。

客户端应用程序没有意识到服务器使用后端数据库来完成请求。

我的学习建议是暂时离开数据库。使用angular.js使客户端从Node.js服务器应用程序加载一些静态数据。当你使用它时,扩展服务器端以从MongoDB获取数据。