hapi 开发人员的完美 ORM

使用 Prisma 在 hapi 应用程序中查询来自 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 模式

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 入门套件

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

GraphQL API 入门套件

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