J'écris un projet pour utiliser Node.js. Je voudrais continuer à utiliser MySQL comme base de données (même si cela ne me dérange pas de réécrire le schéma). Je recherche un ORM simple à utiliser et à performances raisonnables, qui prend en charge la mise en cache, les relations plusieurs à un et plusieurs à plusieurs. D'après les ORM MySQL que j'ai pu trouver, persistencejs et séquelles semblent les plus matures. Avez-vous de l'expérience avec l'un ou l'autre? Quels sont les avantages et les inconvénients pertinents dont je devrais être conscient dans ma décision?
326
Réponses:
Puis-je suggérer Node ORM?
https://github.com/dresende/node-orm2
Il y a de la documentation sur le fichier Lisez-moi, prend en charge MySQL, PostgreSQL et SQLite.
MongoDB est disponible depuis la version 2.1.x (sortie en juillet 2013)
MISE À JOUR: Ce package n'est plus maintenu, selon le fichier README du projet. Il recommande plutôt la bibliothèque et la séquelle
la source
Je choisirais Sequelize en raison de son excellente documentation. C'est juste une opinion honnête (je n'ai jamais vraiment utilisé MySQL avec Node).
la source
Tout d'abord, veuillez noter que je n'ai utilisé aucun d'entre eux (mais j'ai utilisé Node.js).
Les deux bibliothèques sont assez bien documentées et ont une API stable. Cependant, persistence.js semble être utilisé dans plus de projets . Je ne sais pas si tous les utilisent encore.
Le développeur de sequelize blogue parfois à ce sujet sur blog.depold.com . Lorsque vous souhaitez utiliser des clés primaires comme clés étrangères, vous aurez besoin du correctif décrit dans cet article de blog . Si vous souhaitez obtenir de l'aide pour persistence.js, un groupe Google lui est consacré.
D'après les exemples que je comprends, sequelize est un peu plus JavaScript (plus de sucre) que persistance.js mais prend en charge moins de banques de données (uniquement MySQL, tandis que persistance.js peut même utiliser des magasins dans le navigateur).
Je pense que la séquelle pourrait être la voie à suivre pour vous, car vous n'avez besoin que du support MySQL. Cependant, si vous avez besoin de fonctionnalités pratiques (par exemple la recherche) ou si vous souhaitez utiliser une base de données différente ultérieurement, vous devrez utiliser persistence.js.
la source
Une différence majeure entre Sequelize et Persistence.js est que le premier prend en charge un
STRING
type de données, c'est-à-direVARCHAR(255)
. Je me sentais vraiment mal à l'aise de tout faireTEXT
.la source