使用 Prisma 从 MySQL、PostgreSQL 和 SQL Server 数据库中查询 hapi 应用程序中的数据 - 适用于 JavaScript 和 TypeScript 的更好的 ORM。
// Creating a new recordawait prisma.user.create({ firstName: “Alice”, email: “alice@prisma.io”})
id firstName email 1 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 无缝集成。
以下代码演示了使用 hapi 构建 API 服务器时使用 Prisma 的各种用途。
prismaPlugin
是领域或模型特定插件的基础。它包含的 PrismaClient
实例为应用程序的其余部分提供了数据库接口。
1import { PrismaClient } from '@prisma/client'2import Hapi from '@hapi/hapi'3
4declare module '@hapi/hapi' {5 interface ServerApplicationState {6 prisma: PrismaClient7 }8}9
10const prismaPlugin = {11 name: 'prisma',12 register: async function(server) {13 const prisma = new PrismaClient()14
15 server.app.prisma = prisma16
17 server.ext({18 type: 'onPostStop',19 method: async (server) => {20 server.app.prisma.$disconnect()21 },22 })23 },24}25
26export default prismaPlugin
prismaPlugin
是领域或模型特定插件的基础。它包含的 PrismaClient
实例为应用程序的其余部分提供了数据库接口。
1import { PrismaClient } from '@prisma/client'2import Hapi from '@hapi/hapi'3
4declare module '@hapi/hapi' {5 interface ServerApplicationState {6 prisma: PrismaClient7 }8}9
10const prismaPlugin = {11 name: 'prisma',12 register: async function(server) {13 const prisma = new PrismaClient()14
15 server.app.prisma = prisma16
17 server.ext({18 type: 'onPostStop',19 method: async (server) => {20 server.app.prisma.$disconnect()21 },22 })23 },24}25
26export default prismaPlugin
Prisma 非常适合 hapi 的灵活架构,无论您是构建 REST API 还是 GraphQL API。
Prisma 为您提供数据库查询的自动补全功能,出色的开发人员体验和完全的类型安全性。
Prisma Client 确保完全类型安全的数据库查询,并提供自动补全等好处 - 即使在 JavaScript 中也是如此。
Prisma 的声明式建模语言简单易懂,让您能够直观地描述您的数据库架构。
从声明式的 Prisma 架构生成可预测且可自定义的 SQL 迁移。
Prisma Client 通过为常见的 API 功能(例如分页、筛选器等)提供查询来减少样板代码。
使用 hapi 和 Prisma 构建现代后端的教程系列
一个可运行的示例项目,用于使用 SQLite 数据库的 REST API
一个可运行的示例项目,用于使用 SQLite 数据库的 GraphQL API
我们有多个频道,您可以在其中与我们的社区成员和 Prisma 团队互动。