hapi 开发者们的完美 ORM

使用 Prisma 在 hapi 应用程序中查询 MySQL、PostgreSQL 和 SQL Server 数据库 — 适用于 JavaScript 和 TypeScript 的更好用的 ORM。

tech

什么是 Prisma?

Prisma 提供了数据库工具,这些工具是使用出色的 DX 构建高性能 Next.js 应用程序的完美伴侣。

ORM

Prisma ORM 是最受欢迎的 TypeScript ORM。它带有一个人类可读的模式、自动化迁移和一个直观的、完全类型安全的查询 API。

了解有关 Prisma ORM 的更多信息

Postgres

Prisma Postgres 是第一个没有冷启动的无服务器数据库。它基于unikernels,在裸机上运行,并带有一个内置缓存、高性能查询和无缝扩展——所有这些都具有出色的 DX。

了解有关 Prisma Postgres 的更多信息

Prisma 和 hapi 如何搭配使用

Prisma 是一款下一代 ORM,用于在 hapi 应用程序中查询数据库。你可以用它替代手写纯 SQL 查询、使用 Knex.js 等查询构建器或 TypeORM、MikroORM 和 Sequelize 等传统 ORM。

虽然 Prisma 与 hapi 配合得很好,但你也可以将它与任何其他 Web 框架(如 koa.js、Fastify 或 FeathersJS)一起使用。Prisma 可用于构建 RESTGraphQL API,并能与微服务和单体架构无缝集成。

Prisma 和 Hapi 的用例

Prisma 提供了一个方便的数据库访问层,与 hapi 完美集成。

以下代码演示了使用 hapi 构建 API 服务器时 Prisma 的各种用法。

prismaPlugin

prismaPlugin

一个 prismaPlugin 是领域或模型特定插件的基础。它包含的 PrismaClient 实例为应用程序的其余部分提供了数据库接口。

1import { PrismaClient } from '@prisma/client'
2import Hapi from '@hapi/hapi'
3
4declare module '@hapi/hapi' {
5 interface ServerApplicationState {
6 prisma: PrismaClient
7 }
8}
9
10const prismaPlugin = {
11 name: 'prisma',
12 register: async function(server) {
13 const prisma = new PrismaClient()
14
15 server.app.prisma = prisma
16
17 server.ext({
18 type: 'onPostStop',
19 method: async (server) => {
20 server.app.prisma.$disconnect()
21 },
22 })
23 },
24}
25
26export default prismaPlugin
usersPlugin
Prisma schema

prismaPlugin

一个 prismaPlugin 是领域或模型特定插件的基础。它包含的 PrismaClient 实例为应用程序的其余部分提供了数据库接口。

1import { PrismaClient } from '@prisma/client'
2import Hapi from '@hapi/hapi'
3
4declare module '@hapi/hapi' {
5 interface ServerApplicationState {
6 prisma: PrismaClient
7 }
8}
9
10const prismaPlugin = {
11 name: 'prisma',
12 register: async function(server) {
13 const prisma = new PrismaClient()
14
15 server.app.prisma = prisma
16
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 还是 GraphQL API,Prisma 都能完美融入 hapi 的灵活架构。

更高的生产力

Prisma 为你提供了数据库查询的自动补全、出色的开发体验和完整的类型安全。

类型安全的数据库客户端

Prisma Client 确保完全类型安全的数据库查询,并具有自动完成等优势 - 即使在 JavaScript 中也是如此。

直观的数据建模

Prisma 的声明式建模语言简单,让你能直观地描述数据库 Schema。

轻松的数据库迁移

从声明式 Prisma Schema 生成可预测且可定制的 SQL 迁移。

专为构建 API 而设计

Prisma Client 通过提供常见 API 功能(例如分页、过滤器等)的查询来减少样板代码。

精选 Prisma & hapi 示例

REST API 入门套件

一个带 SQLite 数据库的 REST API 即用型示例项目

GraphQL API 入门套件

一个带 SQLite 数据库的 GraphQL API 即用型示例项目

© . This site is unofficial and not affiliated with Prisma Data, Inc.