Prisma Client 是一個自動生成的函式庫,可以作為 Prisma bindings 的替代方案,用於存取應用程式中的資料。它適用於 JavaScript、TypeScript、Flow 和 Go。

⚠️ 這篇文章已過時 因為它與 Prisma 1 相關,Prisma 1 現在已被棄用。若要了解關於最新版本的 Prisma,請閱讀文件。 ⚠️
Prisma Client:Prisma Bindings 的下一個進化
Prisma 將您的資料庫轉換為 GraphQL API。這個 GraphQL API 通常不直接被前端應用程式使用,而是作為資料庫抽象層,以簡化應用程式伺服器中的資料存取(類似於 ORM)。
當使用 Prisma 實作 GraphQL 伺服器時,您的 GraphQL 伺服器的解析器會使用 Prisma Bindings 和 schema delegation 連接到 Prisma API。
Schema delegation 是一種進階的方式來實作解析器,透過將傳入的請求(使用
info
物件)轉發到另一個 GraphQL API。
雖然 schema delegation 是一個強大且優雅的概念,但它最適合進階的使用案例。為了使 Prisma 更靈活且更易於使用,我們正在推出一種新的方式來在您的應用程式中使用 Prisma 的 API:Prisma Client。
更多使用案例:建構 GraphQL 伺服器、REST API 及更多
新的 Prisma Client 與 Prisma Bindings 的用途相似,但有三個主要差異
- 雖然 Prisma Bindings 是為 GraphQL 伺服器設計的,但 Prisma Client 更靈活,可用於更多使用案例,例如 REST API、CLI、腳本等。
- Prisma Client 是 Prisma 工具鏈不可或缺的一部分:它在
prisma.yml
中配置,並使用 Prisma CLI 生成。 - Prisma Client 以多種語言提供。今天的預覽版本使其適用於 JavaScript、TypeScript、Flow 和 Go!
我仍然可以將 Prisma Bindings 用於我的 GraphQL 伺服器嗎?
Prisma Bindings 仍然是一種強大的方式,透過委派給底層的 Prisma API 來實作 GraphQL 解析器。如果 Prisma Bindings 在您目前的使用案例中運作良好,則無需更改您的實作來使用新的 Prisma Client。
生成 Prisma Client
Prisma Client 是一個連接到您的 Prisma API 的函式庫。它是根據您的 Prisma 資料模型自動生成的,因此了解所有 API 操作和資料結構。
若要生成 Prisma Client,您需要做兩件事
- 在您的
prisma.yml
中指定新的generate
屬性,例如:
- 在 Prisma CLI 中執行新的
prisma generate
命令。它會從prisma.yml
和您的資料模型中讀取資訊,以生成 Prisma Client。 請注意,這僅適用於 Prisma 1.17-beta 或更高版本。
上面的程式碼示範如何在 TypeScript 中生成客戶端;對於 JavaScript、Flow 和 Go,您可以使用以下 generator
值:javascript-client
、flow-client
和 go-client
。
使用 Prisma Client API
Prisma Client API 是根據您的資料模型生成的,並為每個模型公開 CRUD 操作。
以下所有程式碼範例都基於下面的資料模型
您可以在這裡查看新的 Prisma Client API 的完整文件。
匯入 Prisma Client 實例
生成後,您可以將 Prisma Client 實例匯入到您的程式碼中
讀取資料
雖然 Prisma Bindings 透過 query
欄位公開所有查詢,但可以在生成的 Prisma Client 上直接調用查詢
這會傳回傳回的 User
物件的所有純量欄位。可以使用方法鏈(也稱為流暢 API)優雅地查詢關聯
請注意,上面的程式碼片段仍然會導致對 Prisma API 的單個請求,然後由 Prisma 強大的查詢引擎針對資料庫解析。
仍然可以使用 GraphQL 查詢巢狀資料,或將 schema delegation 用於新的 Prisma Client API 的進階使用案例。
在文件中查看更多範例。
寫入資料
就像查詢一樣,變更也在您的 Prisma Client 的頂層公開
您也可以在單個交易中執行多個寫入操作
在文件中查看更多範例。
無需樣板程式碼:透過程式碼生成實現型別安全
Prisma Client 的一個核心優勢是型別安全。型別安全可提高生產力、更好的可維護性、更輕鬆的重構,並帶來出色的開發人員體驗。
型別安全的資料存取需要大量的手動工作、編寫樣板程式碼和冗餘的型別定義。Prisma Client 利用程式碼生成來為資料模型和查詢提供自訂型別。
試用 Prisma Client
若要了解更多關於 Prisma Client 的資訊,請查看新的範例儲存庫或按照「開始使用」教學。請在 Slack 上告訴我們您的想法 🙌
開始使用
不要錯過下一篇文章!
註冊 Prisma 電子報