Skip to main content
Prisma Clientの使い方を学ぶ2

エンドポイントの仕様

まずは想定されているエンドポイントの定義を考える。

今回は以下で定義されるユーザのレコードを持っている。

enum Gender {
    MALE,
    FEMALE
}

model User {
    id      Int @id(autoincrement())
    name    String?
    gender  Gender?
}

About 2 minプログラミングTypescriptNodeJSPostgresSQLPrisma
Prisma Clientの使い方を学ぶ

Prisma

一つ前の記事で Prisma のモデル定義を理解した前提で記事を書いていきます。つまり、自分が理解できていなかったらこの記事の内容を理解できないので、執筆が永遠に終わらないことになります。

Scheme

今回は以下のように scheme.prisma ファイルを定義しました。previewFeatures = ["interactiveTransactions"]を追記していますが、これはデータベースのロールバックするときに使います。

Prisma2 での transaction を ActiveRecord 風に書きたい問題で詳しく解説されているので、こちらを読むと幸せになれます。


About 8 minプログラミングTypescriptNodeJSPostgresSQLPrisma
Prismaの使い方を学ぶ

Prisma

Prisma とは公式ドキュメントによると、

Next-generation Node.js and TypeScript ORM

とあるので、要するに次世代の NodeJS と Typescript の ORM であるらしい。ORM とは Object-Relational Mapping のことでオブジェクトのリレーションを行うものを指し、要するに TS で書いたオブジェクトとデータベースを関連付けるための仕組みのことのことなのだと思う、多分。

NodeJS でデータベースを扱うには GraphQL や Prisma や TypeORM などがあるが、GraphQL だけは REST ではない API らしいので、REST を勉強したばかりということもあって今回は Prisma を採用しました。


About 4 minプログラミングTypescriptNodeJSPostgresSQLPrisma