Как лучше всего создавать приложение REST API Node.js с поддержкой нескольких баз данных? - PullRequest
1 голос
/ 12 марта 2019

Недавно я создал REST API Node.js для простого блога, используя Express.js для обработки HTTP-запросов и MySQL для постоянства (в настоящее время я не использую ORM: на уровне доступа к базе данных я вызываю хранимые процедуры непосредственно).

Моя диаграмма архитектуры выглядит следующим образом

Но что, если я захочу отказаться от MySQL и начать использовать MongoDB?

Я думаю, что лучшим подходом было бы добавление поддержки в моем приложении для обеих систем баз данных, так что если я захочу перейти с MySQL на MongoDB или наоборот, у меня будут готовы оба уровня доступа к базе данных (за исключением части переноса данных) .

Каков наилучший способ для достижения этой цели? В идеале, наилучшим решением будет просто изменение свойства конфигурации приложения, чтобы указать, какую базу данных я хочу использовать


1 Ответ

0 голосов
/ 13 марта 2019

Это в значительной степени основано на мнении и контексте.

Каждый раз, когда вам требуется NodeJS для связи с базой данных, вы должны использовать подходящие для них модули, чтобы упростить соединение, запросы и другие действия. Даже если бы вы сами написали модуль для абстрагирования баз данных, вы могли бы обработать только несколько конкретных случаев. Не существует единого модуля для обработки всех из них.

В больших приложениях, где можно использовать несколько API, они обычно находятся в разных конечных точках. В основном /api/mongo и /api/mysql, и вы пишете оба из них, как будто вы пишете один API, и для внесения изменений просто измените свои запросы переднего плана.

Для вашего конкретного случая я бы рекомендовал вам взглянуть на feathersjs . Он имеет Cli, который выполняет то, что я сказал выше, программно и поддерживает множество различных баз данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...