web-dev-qa-db-fra.com

Quel ORM devrais-je utiliser pour Node.js et MySQL?

Je suis en train de réécrire un projet pour utiliser Node.js. J'aimerais 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 aux performances raisonnables, qui prend en charge les relations de mise en cache, plusieurs à un et plusieurs à plusieurs. Je pouvais trouver dans les ORM MySQL, persistencejs et sequelize semblait le plus mature. Avez-vous une expérience avec l'un ou l'autre? Quels sont les avantages et les inconvénients que je devrais connaître dans ma décision?

312
Near Privman

Puis-je suggérer Node ORM?

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

Il existe une documentation sur le fichier Lisez-moi, qui prend en charge MySQL, PostgreSQL et SQLite.

MongoDB est disponible depuis la version 2.1.x (sortie en juillet 2013)

UPDATE: Ce paquet n'est plus mis à jour, selon le fichier README du projet. Il recommande plutôt bibliothèque et sequelize

97
dresende

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 aussi souvent).

140
alessioalex

Tout d'abord, veuillez noter que je ne les ai pas utilisés (mais j'ai utilisé Node.js).

Les deux bibliothèques sont bien documentées et ont une API stable. Cependant, persistence.js semble être tilisé dans plus de projets . Je ne sais pas si tous l'utilisent encore, cependant.

Le développeur de sequelize en blogue parfois à l'adresse blog.depold.com . Lorsque vous souhaitez utiliser des clés primaires comme clés étrangères, vous avez besoin du correctif décrit dans cet article de blog . Si vous souhaitez obtenir de l'aide pour persistence.js, un groupe Google y est consacré.

D'après les exemples que j'ai cernés, la suite est un peu plus semblable à JavaScript (plus de sucre) qu'à persistance.js mais prend en charge moins de datastores (uniquement MySQL, alors que persistance.js peut même utiliser des magasins dans le navigateur).

Je pense que cette solution pourrait être votre solution, car vous n’avez besoin que du support de MySQL. Toutefois, si vous avez besoin de fonctionnalités pratiques (par exemple, la recherche) ou souhaitez utiliser ultérieurement une autre base de données, vous devez utiliser persistence.js.

19
hey_lu

Une différence majeure entre Sequelize et Persistence.js réside dans le fait que le premier supporte un type de données STRING, c'est-à-dire VARCHAR(255). Je me sentais vraiment mal à l'aise de tout faire TEXT.

10
Josh Smith