在 NestJS 應用程式中使用 Prisma 從 MySQL、PostgreSQL 和 SQL Server 資料庫查詢資料 – 適用於 JavaScript 和 TypeScript 的更佳 ORM。
// Creating a new recordawait prisma.user.create({firstName: “Alice”,email: “alice@prisma.io”})
id firstName email1 Bobby bobby@tables.io2 Nilufar nilu@email.com3 Jürgen jums@dums.edu4 Alice alice@prisma.io
Prisma ORM 是次世代 ORM,可用於在 NestJS 應用程式中查詢資料庫。它採用 TypeScript 以避免執行階段錯誤並提高生產力。它提供的型別安全遠遠超出 TypeORM 或 Sequelize 等傳統 ORM 的保證 (瞭解更多)。
無論您是建構 REST 或 GraphQL API,Prisma 都能與 NestJS 的模組化架構順暢整合。
您還可以透過我們的其他工具來增強 Prisma ORM 的使用
• Prisma Accelerate 是一個全域資料庫快取和可擴展的連線池,可加速您的資料庫查詢。
• Prisma Pulse 使您能夠以型別安全的方式建構反應式即時應用程式。
結合 NestJS 和 Prisma 提供了全新層級的型別安全,這是 Node.js 和 TypeScript 生態系統中任何其他 ORM 都無法實現的。此範例示範如何使用 Prisma Client
透過實作 UserService
類別,遵循 NestJS 的模組化架構經由依賴注入,該類別將為您的應用程式控制器提供 CRUD 或特定領域的操作。
可以透過擴展產生的 PrismaClient
來實作 PrismaService
類別,以便建構 Prisma Client 的抽象層,使其與您的 NestJS 架構整合。它將透過依賴注入提供給其他服務和控制器。
1import { Injectable, OnModuleInit, INestApplication } from '@nestjs/common'2import { PrismaClient } from '@prisma/client'34@Injectable()5export class PrismaService extends PrismaClient6 implements OnModuleInit {78 async onModuleInit() {9 await this.$connect();10 }11}
可以透過擴展產生的 PrismaClient
來實作 PrismaService
類別,以便建構 Prisma Client 的抽象層,使其與您的 NestJS 架構整合。它將透過依賴注入提供給其他服務和控制器。
1import { Injectable, OnModuleInit, INestApplication } from '@nestjs/common'2import { PrismaClient } from '@prisma/client'34@Injectable()5export class PrismaService extends PrismaClient6 implements OnModuleInit {78 async onModuleInit() {9 await this.$connect();10 }11}
Prisma 是第一個提供完整型別安全的 ORM,即使在查詢部分模型和關聯時也是如此。
Prisma 完美地融入 NestJS 的模組化架構,並提供強大的資料庫存取層。
Prisma Client 確保完全型別安全的資料庫查詢,並具有自動完成等優點 - 即使在 JavaScript 中也是如此。
Prisma 的宣告式塑模語言簡單易懂,可讓您直覺地描述資料庫結構描述。
從宣告式 Prisma 結構描述產生可預測且可自訂的 SQL 遷移。
Prisma Client 透過為常見 API 功能 (例如分頁、篩選等) 提供查詢來減少樣板程式碼。
一個入門套件,涵蓋在生產環境中使用 NestJS 和 Prisma 建構應用程式所需的一切。
在官方 NestJS 文件中瞭解如何將 Prisma 與 NestJS 搭配使用。
關於使用 Prisma 建構 NestJS REST API 的綜合研討會和系列文章。
一篇深入探討將 NestJS 應用程式從 TypeORM 遷移到 Prisma 的遷移過程的文章。
我們有多個管道供您與社群成員以及 Prisma 團隊互動。