Node.jsとMySQLにはどのORMを使用すればよいですか?[閉まっている]


326

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


しかし、それは非常に興味深いテーマです。サイトのデータを変更するためにサードパーティの開発者にアクセスを希望しますか?リクエストパラメータ(メタ言語)をバックエンドに送信する中間のjsライブラリを作成する方が良いかもしれませんか?
sergzach、2011年

2
@sergzach詳しく説明しますか?「休止状態キャッシング」のためのグーグル。
ponzao 2011年

うーん...いくつかのサイトはユーザーアプリケーションを許可します。または、私はあなたを理解していませんでした、失礼します。
sergzach、2011年

2
@sergzach:キャッシュは、実際には多くのORMソリューションのかなり主要な機能です。たとえば、カイエンを見てください。
Nate CK、

回答:


101

Node ORMを提案できますか?

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

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

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

更新:このパッケージは、プロジェクトのREADMEに基づいて保守されなくなりました。代わりに本棚を推奨し、続編


27
ドキュメントによると、Sequelizeはこのプロジェクトよりもはるかに進んでいるようです。
Tony O'Hagan

これは、mysql ORMを探している人にとってもう1つの優れたオプションです。構文はより複雑ですが、それも素晴らしいです。
dresende

2
このプロジェクトは、URLが変更されました:github.com/dresende/node-orm2
Capy

これをデプロイしようとすると、「エラー:モジュール 'hat'が見つかりません」というエラーが表示されます。.. npmのインストールまたは再インストールの量が役に立たないようです。助言がありますか?ありがとう
Gene Bo

1
Node-orm2はアクティブに維持されなくなりました。sequelizeとbookshelf.jsにリンクしています。
seebiscuit 2018

150

ドキュメントが優れているため、Sequelizeを選択します。それは正直な意見です(MySQLをNodeで実際に使ったことはありません)。


10
node-orm2またはpersistence.jsは移行メカニズムを提供しないことも指摘しておきます。persistence.jsはpostgresをサポートしていません。sequelizeはこれらの両方を行います。
airtonix 2013年

4
私は、ノードORM2を使用してSequelizeのより良いドキュメンテーションのために私がアップし、より簡単に実行し、それを得ることができた
マイケル・J・カルキンズを

2
@Gelidusこの情報はどこで入手しましたか?
William Lepinski 14

14
悲しいことに、Sequelizeのドキュメントは最近ひどくなりました。私は最近Sequelizeを使い始め、ドキュメントに非常に満足しました。これは、壊れたリンク、古い情報、不完全な例の自動生成された山です。私はまだそれに固執します。学ぶことはそれほど難しくありません。
ブラッド

2
古いコメントを削除したところ、残念ながら@Bradに100%同意しました:(
Andrey Popov

19

まず、どちらも使用していないことに注意してください(ただし、Node.jsを使用しています)。

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

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

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

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


1
現在、persistencejs.orgが不要なサイトを
ポイントし

10

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


7
現在、Persistence.jsはVARCHARもサポートしています。
alehro 2013年

8
PostgreSQLのようなデータベースでは、TEXTとVARCHARはまったく同じですが、唯一の違いは、バイト制限(VARCHAR(255))を設定すると、制限をチェックするためのオーバーヘッドが発生することです。PostgreSQLのすべてにTEXTを使用しても、まったく問題はありません。
2014年

3
移植可能ではない場合でも、PostgreSQLでTEXTを使用することは、実際には優れた方法です。
カウベルト2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.