我已经使用Node.js
和MongoDB
构建了一个数据库,我正在编写一个Angular.js
应用程序,该应用程序应该从我的数据库中调用条目,并且能够编写在那些条目中。
我知道直接从javascript写入数据库存在一些安全问题,但我对这类事情完全不熟悉。更重要的是,我找不到有关如何从MongoDB
向我的前端发送数据的任何说明,以便我可以实际使用它!
如何将两者捆绑在一起?在Node.js
中,我使用javascript require
函数加载到我的数据库中并从中读取/写入,但我无法找到在浏览器中执行此操作的方法。在node
中,我使用mongojs
模块将两者连接在一起,但这在我的Angular应用中不起作用,因为我无法使用require
。
主要问题是:如何将MongoDB加载到前端?
编辑:我认为这是一个关于将MongoDB调用到前端而不是特定于角度的更基本的问题。如果我错了,请告诉我。
答案 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获取数据。