2023年6月22日

Prisma Client 擴充套件現已正式釋出

隨著 Prisma ORM 4.16.0 版本的釋出,客戶端擴充套件現已全面可用!這項新功能允許使用者擴充套件和自定義 Prisma Client,以滿足其個性化用例。

Prisma Client Extensions

定製 Prisma Client 以滿足您的程式碼庫需求

4.7.0 版本中,我們釋出了 Prisma Client 擴充套件作為預覽功能。今天我們很高興地宣佈 Prisma Client 擴充套件全面可用!在預覽期間,擴充套件已被證明極其有用和強大,甚至為 Prisma 產品如 AccelerateOptimize 提供了支援!

一個直接且易於使用的 API

如果這是您第一次聽說客戶端擴充套件,請不要擔心。我們有一篇現有的部落格文章深入介紹了其用法。總結一下:建立擴充套件就像使用 $extends 一樣簡單。

此程式碼片段展示瞭如何使用model 擴充套件向 User 模型新增新方法

如果您需要在所有模型上使用某個方法,甚至可以使用內建的 $allModels 功能

有關此版本中我們對擴充套件 API 所做更改的更深入瞭解,請檢視我們的釋出說明

社群構建的擴充套件

雖然客戶端擴充套件現已全面可用,但我們已經看到了一些很棒的實際應用示例。prisma-extension-pagination 是社群的一個出色貢獻。匯入和使用外部客戶端擴充套件也很簡單

各種用例的參考示例

除了社群貢獻之外,我們在 prisma-client-extensions 示例倉庫中提供了一系列參考示例,展示了我們認為 Prisma Client 擴充套件可以發揮作用的不同領域。該倉庫目前包含以下示例擴充套件:

示例說明audit-log-context提供當前使用者 ID 作為 Postgres 審計日誌觸發器的上下文callback-free-itx新增一個無需回撥即可啟動互動式事務的方法computed-fields向結果物件新增虛擬/計算欄位input-transformation轉換傳遞給 Prisma Client 查詢的輸入引數以過濾結果集input-validation對傳遞給修改方法的輸入引數執行自定義驗證邏輯instance-methods向結果物件新增類似 Active Record 的方法,例如 save()delete()json-field-types對儲存在 JSON 列中的資料使用強型別執行時解析model-filters新增可重用的過濾器,可以組合成模型的複雜查詢條件obfuscated-fields防止敏感資料(例如密碼欄位)包含在結果中query-logging使用簡單的查詢計時和日誌記錄封裝 Prisma Client 查詢readonly-client建立一個只允許讀取操作的客戶端retry-transactions為事務新增重試機制,並帶有指數退避和抖動row-level-security使用 Postgres 行級安全策略來隔離多租戶應用程式的資料static-methods向 Prisma Client 模型新增自定義查詢方法transformed-fields演示如何使用結果擴充套件來轉換查詢結果併為應用程式新增國際化exists-fn演示如何為所有模型新增 exists 方法

展示您的擴充套件!

如果您想更深入地瞭解 Prisma Client 擴充套件,請務必檢視我們之前的文章:《Prisma Client 變得更加靈活:Prisma Client 擴充套件》!

我們也樂於聽取您對擴充套件的看法(甚至可以嘗試一下)。

務必在我們的 Discord 中展示您的 #MadeWithPrisma 作品

不要錯過下一篇文章!

訂閱 Prisma 時事通訊

© . This site is unofficial and not affiliated with Prisma Data, Inc.