2016-05-24 13 views
4

Es ist ein Beispiel für Express Integration auf der Horizon.io Github wie hier gezeigt: Horizon express server exampleRethinkDB/Horizon: Integration mit Express: Access Horizon Daten serverseitig?

Ich verstehe, was dieses Beispiel zeigt: wenn Sie einen vorhandenen Express-Server haben Sie einen Horizont Server hinzufügen können, die ein aussetzt route clientseitig, damit sie sich über Websockets mit dem Horizon Server verbinden können.

Allerdings ist es irgendeine Art und Weise für den ausdrücklichen Teil des Servers auch die Sammlungen in Horizon zugreifen? Zum Beispiel für lokale Authentifizierung, CRON-Jobs oder API-Endpunkte, die PUT/POST-Anfragen akzeptieren.

Eine direkte Verbindung zur RethinkDB-Datenbank, die Horizon verwendet, ist aufgrund einer Bibliothek namens Fusion, die dynamisch Metadaten für die Tabellen festlegt, um Firebase-ähnliches Verhalten zu erhalten, das Horizon verwendet, verständlich zum.

Wie kann ich Horizon Datenserver-Seite zugreifen?

Antwort

3

Um die Sammlungen von Horizon greifen Sie auf den @ Horizont/Client verwenden können.

npm install --save @horizon/client 

in Server-Side-Code:

const Horizon = require("@horizon/client/dist/horizon"); 
const horizon = Horizon(); 

Und dann können Sie den Horizon-API verwenden: http://horizon.io/api/horizon/ für Dinge wie Verbindung, Auth, und Benutzer; Verwenden Sie dann die Sammlungs-API: http://horizon.io/api/collection/, um Zugriff auf dieselben Sammlungen zu erhalten, auf die der Client zugreift.

+0

Und ist es eine Möglichkeit, einen benutzerdefinierten Endpunkt zu schaffen? Oder teilen Sie diese Daten irgendwie mit dem Kunden? –

+0

Ich versuchte dies und fand es still versagt ... Aber es sieht aus wie die nächste Version des Clients wird es beheben und ermöglicht es Ihnen, nur 'require (‚@ Horizont/client‘)' statt. Hier einige Notizen gemacht: https://github.com/joshwnj/knowledge/blob/master/horizon-in-node/index.md – Josh

1

Sie benötigen express/koa/hapi-Server erstellen, in dem Sie Horizont/Server umfassen und eine eigene Implementierung für API-Endpunkte benutzerdefinierte bieten.

Lesen Sie mehr hier: http://horizon.io/docs/embed/