hapiアプリでPrismaを使ってMySQL、PostgreSQL、SQL Serverデータベースからデータをクエリ — JavaScriptとTypeScriptのためのより良いORMです。
Prismaは、最高のDXで高性能なNext.jsアプリを構築するための完璧なデータベースツールを提供します。
Prisma ORMは最も人気のあるTypeScript ORMです。人間が読みやすいスキーマ、自動マイグレーション、直感的で完全に型安全なクエリAPIが付属しています。
Prisma ORMについて詳しく知るPrisma Postgresは、コールドスタートのない初のサーバーレスデータベースです。ユニカーネルに基づいており、ベアメタル上で動作し、組み込みキャッシュ、高性能なクエリ、シームレスなスケーリングを提供します。これらすべてが最高のDXで実現します。
Prisma Postgresについて詳しく知るPrismaは、hapiアプリでデータベースをクエリするために使用される次世代ORMです。プレーンなSQLクエリを記述する代わりに、knex.jsのようなクエリビルダーを使用したり、TypeORM、MikroORM、Sequelizeのような従来のORMの代替として使用できます。
Prismaはhapiと完全に統合する便利なデータベースアクセスレイヤーを提供します。
以下のコードは、APIサーバーを構築するためにhapiを使用する際のPrismaの様々な使用方法を示しています。
prismaPlugin
は、ドメイン固有またはモデル固有のプラグインの基盤となります。そこに含まれるPrismaClient
インスタンスは、アプリケーションの残りの部分にデータベースインターフェースを提供します。
1import { PrismaClient } from '@prisma/client'2import Hapi from '@hapi/hapi'34declare module '@hapi/hapi' {5 interface ServerApplicationState {6 prisma: PrismaClient7 }8}910const prismaPlugin = {11 name: 'prisma',12 register: async function(server) {13 const prisma = new PrismaClient()1415 server.app.prisma = prisma1617 server.ext({18 type: 'onPostStop',19 method: async (server) => {20 server.app.prisma.$disconnect()21 },22 })23 },24}2526export default prismaPlugin
prismaPlugin
は、ドメイン固有またはモデル固有のプラグインの基盤となります。そこに含まれるPrismaClient
インスタンスは、アプリケーションの残りの部分にデータベースインターフェースを提供します。
1import { PrismaClient } from '@prisma/client'2import Hapi from '@hapi/hapi'34declare module '@hapi/hapi' {5 interface ServerApplicationState {6 prisma: PrismaClient7 }8}910const prismaPlugin = {11 name: 'prisma',12 register: async function(server) {13 const prisma = new PrismaClient()1415 server.app.prisma = prisma1617 server.ext({18 type: 'onPostStop',19 method: async (server) => {20 server.app.prisma.$disconnect()21 },22 })23 },24}2526export default prismaPlugin
Prismaは、REST APIを構築している場合でもGraphQL APIを構築している場合でも、hapiの柔軟なアーキテクチャに完璧に適合します。
Prismaは、データベースクエリのオートコンプリート、優れた開発者体験、完全な型安全性を提供します。
Prisma Clientは、JavaScriptでもオートコンプリートのような利点により、完全に型安全なデータベースクエリを保証します。
Prismaの宣言的モデリング言語はシンプルで、直感的にデータベーススキーマを記述できます。
宣言的なPrismaスキーマから、予測可能でカスタマイズ可能なSQLマイグレーションを生成します。
Prisma Clientは、一般的なAPI機能(ページネーション、フィルターなど)のクエリを提供することで、ボイラープレートを削減します。
hapiとPrismaでモダンなバックエンドを構築するためのチュートリアルシリーズ
SQLiteデータベースを使用したREST APIのすぐに実行できるサンプルプロジェクト
SQLiteデータベースを使用したGraphQL APIのすぐに実行できるサンプルプロジェクト
コミュニティメンバーやPrismaチームと交流できる複数のチャネルがあります。