【发布时间】:2011-11-09 16:41:53
【问题描述】:
我想直接从客户端使用 mongodb,在我的模型中使用 javascript。我想这是可能的,因为在 mongo 网站上有一个用于演示的 javascript 实时控制台。
有没有一种方法可以在普通的 javascript 应用程序中使用相同的 api 而无需编写客户端-服务器粘合代码?
谢谢
【问题讨论】:
标签: mongodb client-server client-side javascript
我想直接从客户端使用 mongodb,在我的模型中使用 javascript。我想这是可能的,因为在 mongo 网站上有一个用于演示的 javascript 实时控制台。
有没有一种方法可以在普通的 javascript 应用程序中使用相同的 api 而无需编写客户端-服务器粘合代码?
谢谢
【问题讨论】:
标签: mongodb client-server client-side javascript
看起来该站点使用类似 REST 的 AJAX 接口,但我确信它不会直接访问任何 MongoDB 实例,甚至不会通过某些桥接间接访问。
在应用此模式之前要三思:您将如何实施安全性?你知道 AJAX 的限制吗?如果你真的知道自己在做什么,官方documentation指点几个有用的资源:
Sleepy Mongoose (Python) 是一个用于 MongoDB 的全功能 REST 接口,可作为单独的项目使用。
MongoDB Rest (Node.js) 是 MongoDB 的 alpha REST 接口,它使用 MongoDB Node Native 驱动程序。
Simple REST Interface 为了方便起见,mongod 进程包含一个简单的只读 REST 接口。对于完整的 REST 功能,我们建议使用外部工具,例如 Sleepy.Mongoose。
拥有一个 REST 桥并管理 same origin policy,您可以轻松地使用 AJAX 调用和 JavaScript 直接访问 MongoDB。
【讨论】:
我需要自己做一些类似的事情,一个管理界面内的控制台,因为我在后端使用 PHP,所以我只是编写了脚本来接收 js 命令并使用 MongoDB::execute 方法,php 中的连接已打开,因此我无需传递任何身份验证数据,只需传递命令即可。
但是,您必须非常小心这样的事情,并确保只有受信任的用户才能访问页面(和脚本),不要将其公开,因为任何人都可以在客户端上执行 js 来访问您的数据库。
【讨论】:
看看meteorjs,或者类似的。模型编写一次,ACL 完整。
添加 Redis 会变得更好 :)
【讨论】:
对于其他想知道的人,这可以使用类似于 Google 的 Firebase 的 Stitch,因为它提供对后端数据库的客户端访问,在本例中是 Atlas BaaS 上的 MongoDB。 Stitch 还具有 AWS Lambdas 等功能以及其他对开发实时应用程序有意义的功能。当我昨天在聚会上设置基本博客教程时,这似乎相当简单。干杯!
【讨论】: