【问题标题】:Connecting MongoDB to the front-end?将MongoDB连接到前端?
【发布时间】:2013-07-04 11:33:59
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 我不确定我是否理解。您想从浏览器直接连接到数据库吗?这是一个非常的坏主意。这正是您要使用 NodeJS(或任何其他 Web 服务器)的原因:您将数据从 DB 加载到 WebServer,然后将其组合成 HTML/JSON/您想要的任何格式,然后通过 HTTP 将其发送到浏览器。
  • 你在前端需要 mongojs 模块时遇到了什么问题?您需要一个模块加载器,例如 RequireJS

标签: javascript mongodb


【解决方案1】:

简答:你不知道。

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

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

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

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

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

【讨论】:

  • 我实际上已经完成了你的学习推荐——我编写的 AngularJS 应用程序通过 JSON 加载数据。问题是,我真的不明白(我也无法在我相当广泛的搜索中找到)如何将数据库链接到前端。我很高兴使用 node 作为中间人,但我从未见过客户端 -> 节点 -> db 的任何实现。您能否建议我可以了解更多相关信息的任何资源?我主要是前端开发人员,所以很多事情都超出了我的想象。
猜你喜欢
  • 2019-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-14
  • 2021-04-26
  • 2018-07-05
  • 2014-03-28
相关资源
最近更新 更多