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/