Библиотеки для Node js работы с PostgreSQL

Основные библиотеки для работы с PostgreSQL для Node js.

  • pg – драйвер для работы с PostgreSQL
  • pg-promise – более соложная, чем pg (т.е. предыдущая) и по сути использует ее у себя “пот капотом”, являясь, так сказать, оберткой над ней. Она промисикована, позволяет делать какие-то репозитории, легче обрабатывать какие-то ошибки, но, скорее всего, ее правильнее использовать в контексте тайпскрипта.
  • knex (SQL builder) – эта библиотека уже не из серии предыдущих, так как это так называемый querybuilder (“построитель запросов”), который упрощает обращение к БД и способен работать с различными типами БД. Knex позволяет выполнять запросы не обычным синтаксисом SQL, как предыдущие библиотеки, а своим собственным, например: knex.('title', 'author', 'year').from('books'). Но есть и минусы в таком подходе, так как такие querybuilder(ы) не могут заменить все, мы не можем полностью отказаться от SQL. Сложные вещи c “group by” и т.д.
  • sequelize (ORM) – это уже из ОРМ (Object-Relational Mapping), которые работают, создавая «виртуальную объектную базу данных». В результате можно использовати запросы из разных типов БД, а они будут работать. Т.е. это дает возможность избежать ситуации, когда один запрос работает в MySQL и не работает в PSQL. Благодаря этому, теортеически, можно легко сменить тип БД с одного на другой, не переписывая запросы, но на практики вряд ли такое кто-то будет делать.
  • typeORM (ORM) – ОРМ для тайпскрипта, популярная, легче зайти намного, чем в SQL, делает сама за вас миграции. На первый взгляд все неплохо, но много багов, если копнуть уже глубже: делает очень плохие запросы даже, например, на left JOIN (оно конечно работает, но совсем не оптимизировано – какое-то полтно получается). Но работет. Подключать ее несложно, но намного сложнее чем просто PostgreSQL.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *