适用于 hapi 开发者的完美 ORM

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

tech

什么是 Prisma?

Prisma 提供数据库工具,是构建高性能 Next.js 应用程序的完美伴侣,并提供出色的开发体验(DX)。

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 配合得很好,但您也可以将其与 koa.js、Fastify 或 FeathersJS 等其他任何 Web 框架一起使用。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 模式

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?

无缝集成

Prisma 完美契合 hapi 的灵活架构,无论是构建 REST 还是 GraphQL API。

更高的生产力

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

类型安全的数据库客户端

Prisma Client 确保完全类型安全的数据库查询,并提供自动补全等优点——即使在 JavaScript 中也是如此。

直观的数据建模

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

轻松进行数据库迁移

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

专为构建 API 而设计

Prisma Client 通过为常见的 API 功能(例如:分页、筛选等)提供查询,减少了样板代码。

精选 Prisma 和 hapi 示例

使用 TypeScript、PostgreSQL 和 Prisma 构建现代后端

使用 hapi 和 Prisma 构建现代后端的系列教程

REST API 快速入门套件

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

GraphQL API 快速入门套件

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

© . All rights reserved.