hapi 开发者的完美 ORM

在 hapi 应用中使用 Prisma 查询来自 MySQL、PostgreSQL 和 SQL Server 数据库的数据 – 适用于 JavaScript 和 TypeScript 的更佳 ORM。

tech

什么是 Prisma?

Prisma 让数据处理变得轻松!它提供类型安全的 Node.js 和 TypeScript ORM、全局数据库缓存、连接池和实时数据库事件。

查询
// Creating a new record
await prisma.user.create({
firstName: “Alice”,
email: “alice@prisma.io”
})
表格
id firstName email
1 Bobby bobby@tables.io
2 Nilufar nilu@email.com
3 Jürgen jums@dums.edu
4 Alice alice@prisma.io

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 的声明式建模语言简单易懂,让您可以直观地描述数据库模式。

简易数据库迁移

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

专为构建 API 而设计

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

精选 Prisma & hapi 示例

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

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

REST API 入门套件

一个随时可运行的示例项目,用于构建带有 SQLite 数据库的 REST API

GraphQL API 入门套件

一个随时可运行的示例项目,用于构建带有 SQLite 数据库的 GraphQL API