Я переписываю проект для использования Node.js. Я хотел бы продолжать использовать MySQL в качестве базы данных (хотя я не против переписать схему). Я ищу простой в использовании, разумный по производительности ORM, который поддерживает кэширование, отношения «многие к одному» и «многие ко многим». Из найденных мной MySQL ORM, persistencejs и sequelize кажутся наиболее зрелыми. У вас есть опыт работы с любым из них? Каковы соответствующие плюсы и минусы, которые я должен знать в своем решении?
326
Ответы:
Могу ли я предложить Node ORM?
https://github.com/dresende/node-orm2
Там есть документация по Readme, поддерживает MySQL, PostgreSQL и SQLite.
MongoDB доступна с версии 2.1.x (выпущена в июле 2013 г.)
ОБНОВЛЕНИЕ: этот пакет больше не поддерживается, согласно README проекта. Вместо этого он рекомендует книжную полку и продолжение
источник
Я бы выбрал Sequelize, потому что это отличная документация. Это просто честное мнение (я никогда особо не использовал MySQL с Node).
источник
Прежде всего, обратите внимание, что я не использовал ни один из них (но использовал Node.js).
Обе библиотеки хорошо документированы и имеют стабильный API. Тем не менее, persistence.js, похоже, используется в большем количестве проектов . Я не знаю, все ли они все еще используют это, все же.
Разработчик sequelize иногда ведет блог об этом на blog.depold.com . Если вы хотите использовать первичные ключи в качестве внешних ключей, вам понадобится патч, описанный в этом посте . Если вам нужна помощь для persistence.js, есть группа Google, посвященная этому.
Из примеров, которые я понял, sequelize немного больше похож на JavaScript (больше сахара), чем persistance.js, но поддерживает меньшее количество хранилищ данных (только MySQL, тогда как persistance.js может даже использовать хранилища в браузере).
Я думаю, что sequelize может стать для вас подходом, поскольку вам нужна только поддержка MySQL. Однако, если вам нужны какие-то удобные функции (например, поиск) или вы хотите использовать другую базу данных позже, вам нужно будет использовать persistence.js.
источник
Одним из основных отличий между Sequelize и Persistence.js является то , что бывшим поддерживают
STRING
типы данных, то естьVARCHAR(255)
. Мне было очень неудобно делать всеTEXT
.источник