17

我已经用Node.jsand建立了一个数据库MongoDB,我正在编写一个Angular.js应用程序,它应该从我的数据库中调用条目,并且能够写入这些条目。

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

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

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

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

4

1 回答 1

18

简短的回答:你没有。

长答案: MongoDB 并非旨在将数据直接暴露给客户端。客户端与网络服务器上的应用程序交互 - 在您的情况下是在 Node.js 中实现的 - 并且网络服务器与数据库进行通信。

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

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

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

我给你的学习建议是暂时不要使用数据库。使用 angular.js 使客户端从 Node.js 服务器应用程序加载一些静态数据。当你完成这项工作时,扩展服务器端以从 MongoDB 获取数据。

于 2013-07-04T13:22:34.413 回答