使用 Prisma 在 hapi 应用程序中查询来自 MySQL、PostgreSQL 和 SQL Server 数据库的数据——适用于 JavaScript 和 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 完美集成。
下面的代码演示了在使用 hapi 构建 API 服务器时 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
无论您构建的是 REST 还是 GraphQL API,Prisma 都非常适合 hapi 的灵活架构。
Prisma 为您提供数据库查询的自动完成、出色的开发人员体验和完全的类型安全。
Prisma Client 确保完全类型安全的数据库查询,并具有自动完成等优势——即使在 JavaScript 中也是如此。
Prisma 的声明式建模语言简单明了,让您可以直观地描述数据库模式。
从声明式 Prisma 模式生成可预测且可自定义的 SQL 迁移。
Prisma Client 通过为常见的 API 功能(例如,分页、过滤器等)提供查询来减少样板代码。
使用 hapi 和 Prisma 构建现代后端的教程系列
一个用于 REST API 的即用型示例项目,带有 SQLite 数据库
一个用于 GraphQL API 的即用型示例项目,带有 SQLite 数据库
我们有多个渠道,您可以在其中与我们的社区成员以及 Prisma 团队互动。