@rithmety

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Node.js + TypeScript + RDB なプロジェクトの ORM といえば?

Node.js + TypeScript + RDB

MEAN Stack など Node.js といえば NoSQL な DB と組み合わせることが多い印象はありますが
Node.js + RDB の組み合わせもそれなりのシェアがあると信じています。

TypeScript は静的型チェックで多くのバグを事前に防いでくれます。
SQL は文字列なので、そのままではチェックされません。
多くのプロジェクトでは ORM を導入することで解決しているのではないでしょうか。

Node.js + TypeScript + RDB なプロジェクトの ORM といえば?

おすすめの ORM、それのメリットやデメリットの回避法などなど 教えてもらえたら嬉しいです。
私が知っているのは TypeORM や Sequelize くらいなのですが下記のような印象があります。

TypeORM

最近は Nest.jsFoal TS などの Web フレームワークが
TypeORM が使われることが想定されて作られているなど人気があります。

Entity が書きやすいように思います。

しかし、 TypeORM は現在(2020/07/16)v0.2.25 であり
個人的にはリレーションまわりが使いづらく感じました。
例えば「特定のユーザに紐づく最新の記事を 10 件取ってくる」ようなクエリが書きづらかったです。

Sequelize

約 10 年前から開発されており
かなり多くのユースケースに対応できる印象があります。

最近 v6 がリリースされて TypeScript への対応がかなり改善しました。
リレーションまわりで Model の定義が面倒なのは相変わらずです。

ほかの ORM など

未確認なものとして
Bookshelf とか
文字列である SQL を実際の DB に問い合わせつつチェックしてくれる言語サーバがあったような?

おすすめはもちろんですが、おすすめできない ORM であっても理由とともに教えてほしいです。

5 likes

(ORMと呼べるか分かりませんが)PrismaはTypeScriptをサポートしていて型で守れるのでなかなか気に入ってます。

1Like

Your answer might help someone💌