hapiアプリでMySQL、PostgreSQL、SQL ServerデータベースからPrismaを使ってデータクエリ – JavaScriptとTypeScriptのためのより良いORM。
Prismaはデータ操作を簡単にします!タイプセーフなNode.js & TypeScript ORM、グローバルデータベースキャッシュ、接続プーリング、リアルタイムデータベースイベントを提供します。
// Creating a new recordawait prisma.user.create({firstName: “Alice”,email: “alice@prisma.io”})
id firstName email1 Bobby bobby@tables.io2 Nilufar nilu@email.com3 Jürgen jums@dums.edu4 Alice alice@prisma.io
Prismaは次世代ORMであり、hapiアプリでデータベースをクエリするために使用されます。プレーンなSQLクエリの記述、knex.jsのようなクエリビルダーの使用、またはTypeORM、MikroORM、Sequelizeのような従来のORMの代替として使用できます。
Prismaはhapiと非常に相性が良いですが、koa.js、Fastify、FeathersJSなどの他のウェブフレームワークでも使用できます。PrismaはRESTやGraphQL APIを構築するために使用でき、マイクロサービスとモノリシックアーキテクチャの両方とスムーズに統合できます。
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チームと交流できる複数のチャネルを用意しています。