RethinkDB / Horizon: интеграция с Express: доступ к данным Horizon на стороне сервера?

Вот пример экспресс-интеграции на Horizon.io Github, как показано здесь: Пример сервера Horizon Express

Я понимаю, что показывает этот пример: если у вас есть существующий сервер Express, вы можете добавить сервер горизонта, который предоставляет клиенту маршрут, чтобы они могли подключаться к серверу горизонта через веб-сокеты.

Однако есть ли у экспресс-части сервера возможность доступа к коллекциям в Horizon? Например, чтобы выполнять такие вещи, как локальная аутентификация, задания CRON или иметь конечные точки API, которые принимают запросы PUT/POST.

Из того, что я понимаю, прямое соединение с базой данных RethinkDB, которую использует Horizon, не очень полезно, потому что библиотека с именем Fusion динамически устанавливает метаданные для таблиц, чтобы получить поведение, подобное Firebase, для которого используется Horizon.

Как я могу получить доступ к данным Horizon на стороне сервера?

2 ответа

Решение

Для доступа к коллекциям Horizon вы можете использовать @horizon/client.

npm install --save  @horizon/client

в коде на стороне сервера:

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

И тогда вы можете использовать Horizon API: http://horizon.io/api/horizon/ для таких вещей, как соединение, аутентификация и пользователи; затем используйте API коллекции: http://horizon.io/api/collection/ для получения доступа к тем же коллекциям, к которым клиент обращается.

Вам необходимо создать сервер Express/ KOA / HAPI, в который вы включите сервер Horizon/ и предоставите свою собственную реализацию для пользовательских конечных точек API.

Узнайте больше здесь: http://horizon.io/docs/embed/

Другие вопросы по тегам