在没有 node.js 的情况下从 javascript 连接到/查询 rethinkdb
Connect to / query rethinkdb from javascript without node.js
我正在尝试创建一个简单的浏览器内网络应用程序,以使用一些不错的格式显示给定重新思考 table 的内容。我无法找到一种无需使用 node.js 即可真正连接到重新思考的方法。我想做的就是取出数据,然后 运行 通过一些 styling/layout 的东西。 Node + 依赖关系对于一个只有浏览器的小应用程序来说太过分了。
不幸的是,您将需要一台服务器。它可能是 node.js 或者它可能是另一种语言,但你需要一个服务器。
RethinkDB 不是 Firebase。无法从您的浏览器查询。如果你绝对需要浏览器端查询并且没有服务器,你应该使用 Firbase。
如果你想使用 RethinkDB,你可以有一个非常瘦的服务器,它只是将你的查询重定向到 RethinkDB。这可以通过 HTTP 或 WebSockets 完成。
为什么
最终,您不想从浏览器查询数据库的原因是安全性。 RethinkDB 没有用户或只读帐户。这意味着如果您的数据库可以从您的浏览器访问,任何人都可以通过一个简单的查询来删除您的所有数据库(包括您的系统表)。
例如:
r.db('rethinkdb').tableList().forEach(function (tableName) {
return r.db('rethinkdb').tableDrop(tableName);
});
现在,您所有的数据库都消失了:)。
请记住,这 是 RethinkDB 团队意识到并正在努力的事情。
我正在尝试创建一个简单的浏览器内网络应用程序,以使用一些不错的格式显示给定重新思考 table 的内容。我无法找到一种无需使用 node.js 即可真正连接到重新思考的方法。我想做的就是取出数据,然后 运行 通过一些 styling/layout 的东西。 Node + 依赖关系对于一个只有浏览器的小应用程序来说太过分了。
不幸的是,您将需要一台服务器。它可能是 node.js 或者它可能是另一种语言,但你需要一个服务器。
RethinkDB 不是 Firebase。无法从您的浏览器查询。如果你绝对需要浏览器端查询并且没有服务器,你应该使用 Firbase。
如果你想使用 RethinkDB,你可以有一个非常瘦的服务器,它只是将你的查询重定向到 RethinkDB。这可以通过 HTTP 或 WebSockets 完成。
为什么
最终,您不想从浏览器查询数据库的原因是安全性。 RethinkDB 没有用户或只读帐户。这意味着如果您的数据库可以从您的浏览器访问,任何人都可以通过一个简单的查询来删除您的所有数据库(包括您的系统表)。
例如:
r.db('rethinkdb').tableList().forEach(function (tableName) {
return r.db('rethinkdb').tableDrop(tableName);
});
现在,您所有的数据库都消失了:)。
请记住,这 是 RethinkDB 团队意识到并正在努力的事情。