【问题标题】:Can I access a Horizon RethinkDB instance from outside of the Horizon app?我可以从 Horizo​​n 应用程序外部访问 Horizo​​n RethinkDB 实例吗?
【发布时间】:2016-09-09 07:21:00
【问题描述】:

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

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

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

【问题讨论】:

  • 服务器是否监听了可访问的接口(0.0.0.0)?您是否尝试过使用本机 rethinkdb 驱动程序并将 rethink 服务器的主机和端口地址传递给它?这实际上与地平线无关,因为从 rethinkdb 的角度来看,它就像任何其他客户端一样。此外,您还必须配置权限等,以确保您的服务器安全且其他人无法访问。
  • 嘿,Erik J,这绝对是可能的,但我需要更多信息来帮助您连接这些点。据我了解,您希望有一个单独的服务将数据推送到 RethinkDB 并由 Horizo​​n 访问?
  • 你发现了吗?

标签: rethinkdb rethinkdb-javascript horizon


【解决方案1】:

只要 RethinkDB 实例对以某种方式将数据推送到 RethinkDB 的服务可见,这是完全可能的。然后,您只需通过标准驱动程序连接with your language of choice 连接到 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 或在discuss.horizon.io 创建一个新主题!

【讨论】:

    猜你喜欢
    • 2016-09-21
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多