web-dev-qa-db-ja.com

Node.jsとMySQLにどちらのORMを使用すればよいですか?

Node.jsを使うようにプロジェクトを書き直しています。私はDBとしてMySQLを使い続けることを望みます(私はスキーマを書き換えることを気にしなくても)。私は、キャッシング、多対一、多対多の関係をサポートする、使いやすく合理的なパフォーマンスのORMを探しています。私が見つけることができたMySQLのORMから、 persistencejssequelize が最も多いようです成熟しました。どちらかの経験がありますか。私の決断において私が知っておくべき関連する長所と短所は何ですか?

306
Near Privman

ノードORMを提案できますか?

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

Readmeに関するドキュメントがあり、MySQL、PostgreSQL、SQLiteをサポートしています。

MongoDBはバージョン2.1.x以降で利用可能です(2013年7月にリリース)。

更新:このパッケージは、プロジェクトのREADMEによると、もはやメンテナンスされていません。代わりに 本棚続編

93
dresende

私は Sequelize を選ぶでしょう。それはただの正直な意見です(私はMySQLをNodeでそれほど使ったことはありません)。

132
alessioalex

最初に、私はどちらも使っていないことに注意してください(しかしNode.jsを使っています)。

どちらのライブラリも非常によく文書化されており、安定したAPIを持っています。しかし、persistence.jsは より多くのプロジェクトで使用されているようです 。それでも、彼ら全員がまだそれを使っているのかどうかはわかりません。

Sequelizeの開発者は時々 blog.depold.com でそれについてブログを書いています。主キーを外部キーとして使用したい場合は、 このブログ記事 に記載されているパッチが必要です。 persistence.jsのヘルプが必要な場合は、それに関するGoogleグループがあります。

私が収集した例から、sequelizeはpersistance.jsよりもJavaScriptに似ている(砂糖が多い)が、少数のデータストアしかサポートしていない(persistance.jsはブラウザ内ストアさえも使用できるがMySQLのみ)。

MySQLのサポートのみが必要なので、sequelizeがあなたのための方法になるかもしれないと思います。ただし、便利な機能(検索など)が必要な場合や、後で別のデータベースを使用したい場合は、persistence.jsを使用する必要があります。

19
hey_lu

SequelizeとPersistence.jsの大きな違いの1つは、前者がSTRINGデータ型、つまりVARCHAR(255)をサポートしていることです。私はすべてをTEXTにすることを本当に不快に感じました。

9
Josh Smith