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 可用於建置 REST 和 GraphQL 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 的隨時可執行範例專案