0

我试图将 Horizo​​n 应用程序与外部托管的 RethinkDB 放在一起,但我似乎无法让它与现有工具一起使用。我了解 Horizo​​n 包含一个服务器端 API 组件,这可能就是原因。

我希望能够从外部服务器直接在我的 RethinkDB 中插入和/或更新文档,并将这些更新推送到订阅的浏览器。这是可能的和/或明智的吗?

最好这根本不会涉及我的 Horizo​​n Express 服务器。我宁愿不必公开自己的 API 来执行此操作。

4

1 回答 1

0

只要 RethinkDB 实例对以某种方式将数据推送到 RethinkDB 的服务可见,这是完全可能的。然后,您只需使用您选择的语言通过标准驱动程序连接连接到 RethinkDB 。Python 中的简单代码如下所示:

import rethinkdb as r

conn = r.connect('localhost', 28015)
r.db("horizon_project_name").table("things").insert({'text': 'Hello, World!'}).run(conn) 

然后,当您启动 Horizo​​n 时,您需要确保使用该--connect标志并提供同一个 RethinkDB 实例的主机名和端口。

例如,如果 RethinkDB 与 Horizo​​n 运行在同一台机器上:

hz serve --connect localhost:28015

在 Horizo​​n 中,您可以在浏览器中像这样收听这些消息:

const horizon = Horizon();
horizon('things').subscribe((result) => {
  // `result` is the entire collection as an array
  console.log("result!", result); 
});

如果您在这方面需要进一步的帮助,请随时给我发推文@dalanmiller或在 Discussion.horizo ​​n.io中创建一个新主题!

于 2016-09-08T23:21:00.213 回答