2016-08-09 4 views
0

外部からホストされているRethinkDBを使ってHorizo​​nアプリケーションを作成しようとしましたが、既存のツールで動作させることができませんでした。 Horizo​​nにはサーバー側のAPIコンポーネントが含まれていることを理解しています。Horizo​​nアプリケーションの外からHorizo​​n RethinkDBインスタンスにアクセスできますか?

RethinkDB内のドキュメントを外部サーバーから直接挿入したり更新したりすることができます。これらの更新を購読済みのブラウザにプッシュすることができます。これは可能なのか、それとも賢明なのでしょうか?

これは私のHorizo​​n Expressサーバーをまったく含まないことが望ましいです。私はこれを行うために私自身のAPIを公開する必要がないことを好むだろう。

+0

サーバーはアクセス可能なインターフェイス(0.0.0.0)でリッスンしていますか?あなたは、ネイティブのrethinkdbドライバを使って、rethinkサーバのホストとポートのアドレスを渡してみましたか?これは本当にhorizo​​nとは関係がありません。なぜなら、rethinkdbの観点から見ると、これは他のクライアントとまったく同じです。また、あなたのサーバが安全で他人がアクセスできないようにアクセス許可などを設定する必要があります。 – AlanZ2223

+0

こんにちはErik J、これは間違いありませんが、ドットの接続に役立つ情報が必要です。私が理解しているところから、別のサービスでRethinkDBにデータをプッシュし、Horizo​​nからアクセスできるようにしたいとしますか? – dalanmiller

+0

これは分かりましたか? – dalanmiller

答えて

0

これは、何らかの形で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) 

その後、あなたは--connectフラグを使用して、同じRethinkDBインスタンスのホスト名とポートを提供することを確認したいと思います。

たとえば、RethinkDBが地平線と同じマシン上で実行されている場合:ホライゾンで

hz serve --connect localhost:28015 

、ブラウザでそのように、これらのメッセージを聞くことができるだろう:

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

これについてさらに助けが必要な場合は、私に@dalanmillerとつぶやくか、discuss.horizon.ioで新しいトピックを作成してください!

関連する問題