Какой ORM я должен использовать для Node.js и MySQL?

Я переписываю проект для использования Node.js. Я бы хотел использовать MySQL в качестве базы данных (хотя я не против переписывать схему). Я ищу простую в использовании и разумную производительность ORM, которая поддерживает отношения кэширования, много-к-одному и многие-ко-многим. Из MySQL ORM, которые я мог найти, persistencejs и sequelize кажутся наиболее зрелыми. У вас есть опыт? Каковы соответствующие плюсы и минусы, о которых я должен знать в своем решении?

Могу ли я предложить Node ORM?

https://github.com/dresende/node-orm2

В Readme имеется документация, поддерживающая MySQL, PostgreSQL и SQLite.

MongoDB доступен с версии 2.1.x (выпущен в июле 2013 года)

Я бы выбрал Sequelize, потому что это отличная документация. Это просто честное мнение (я никогда не использовал MySQL с узлом).

Прежде всего, обратите внимание, что я не использовал ни один из них (но использовал Node.js).

Обе библиотеки хорошо документированы и имеют стабильный API. Однако persistence.js, по-видимому, используется в большем количестве проектов . Я не знаю, все ли они все еще используют его.

Разработчик sequelize иногда блоги об этом на blog.depold.com . Если вы хотите использовать первичные ключи как foreign keys, вам понадобится патч, описанный в этом сообщении в блоге . Если вы хотите получить помощь для persistence.js, вам будет предложена группа google.

Из примеров, которые я собираю, что sequelize является немного более похожим на JavaScript (больше сахара), чем persistance.js, но имеет поддержку для меньшего количества хранилищ данных (только MySQL, в то время как persistance.js может даже использовать в браузере магазины).

Я думаю, что sequelize может быть для вас, потому что вам нужна только поддержка MySQL. Однако, если вам нужны некоторые удобные функции (например, поиск) или вы хотите использовать другую базу данных позже, вам нужно будет использовать persistence.js.

Одним из основных различий между Sequelize и Persistence.js является то, что первый поддерживает тип данных STRING , то есть VARCHAR(255) . Мне было очень неудобно делать все TEXT .

  • org.hibernate.MappingException: Не удалось определить тип для: java.util.List, at table: College, для столбцов:
  • В чем разница между однонаправленными и двунаправленными ассоциациями JPA и Hibernate?
  • Выполнение вложений и обновлений с помощью Dapper
  • JPA: как иметь отношение «один ко многим» одного и того же типа Entity
  • Что такое ленивая загрузка в Hibernate?
  • Я обнаружил, что JPA, или, похоже, не поощряет шаблон DAO
  • Ошибка гибернации: org.hibernate.NonUniqueObjectException: другой объект с тем же значением идентификатора уже был связан с сеансом
  • Лучшие бесплатные инструменты ORM для использования с .NET 2.0 / 3.5
  • Примитив или shell для первичных ключей спящего режима
  • NHibernate vs LINQ to SQL
  • Почему django prefetch_related () работает только со всеми (), а не с фильтром ()?
  • Давайте будем гением компьютера.