我试图把一个带有外部托管RethinkDB的Horizon应用程序组合在一起,但我似乎无法让它与现有的工具一起工作。我知道Horizon包含一个服务器端API组件,这可能就是原因。
我希望能够直接从外部服务器插入和/或更新RethinkDB中的文档,并将这些更新推送到订阅的浏览器。这是可能和/或明智的吗?
这最好不涉及我的Horizon express服务器。我不想公开我自己的API来做这件事。
发布于 2016-09-09 07:21:00
这是完全可能的,只要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) 然后,当您启动Horizon时,您需要确保使用--connect标志,并提供相同RethinkDB实例的主机名和端口。
例如,如果RethinkDB与Horizon在同一台计算机上运行:
hz serve --connect localhost:28015在Horizon中,您可以在浏览器中收听以下消息:
const horizon = Horizon();
horizon('things').subscribe((result) => {
// `result` is the entire collection as an array
console.log("result!", result);
});如果你在这方面需要进一步的帮助,请随时在推特上给我发@dalanmiller或者在discuss.horizon.io中创建一个新的主题!
https://stackoverflow.com/questions/38852975
复制相似问题