2024 年 6 月 25 日

Prisma ORM 5.16.0 版本引入模型字段的全局省略功能!

探索 Prisma ORM 5.16.0 中的强大新功能,该功能允许您全局或局部省略查询中的特定字段。无论您需要确保敏感信息(如密码)永远不会泄露,还是希望为单个查询简化数据检索,Prisma ORM 都能满足您的需求。在这篇博文中,了解如何通过代码示例和指南增强您的数据管理。

An image describing a new feature with Prisma ORM version 5.16.0. It shows a User model with a password field that is omitted. Text reads "globally or locally omit fields returned by Prisma Client queries"

在 Prisma ORM 5.16.0 中,我们很高兴推出一种全局省略 Prisma Client 查询中字段的方法!这个备受要求的功能直接受到我们社区通过 GitHub 问题上的反馈以及对我们最初实现的 omitApi 预览功能的反馈的影响。非常感谢所有帮助我们继续开发此功能的每个人!

我们相信此版本有助于增强开发人员在性能和体验与安全性和隐私之间取得平衡的需求。请继续阅读,我们将使用此功能来简化您管理查询结果中的敏感数据的方式。

在 Prisma ORM 5.16.0 中省略字段

借助最初在 Prisma ORM 5.13.0 中发布的 omitApi 预览功能,您现在可以结合现有的 select 功能或在 Prisma Client 初始化时从查询中 omit 字段。您可以选择全局省略字段(例如用户密码),或定义要基于每次查询省略的字段(例如并非在所有视图中都必需的字段)。现在,比以往任何时候都更容易仅将前端所需的数据发送给它。

如何全局省略字段

在 Prisma Client 初始化时,您可以将字段标记为“省略”。这意味着对于该 Prisma Client 实例上的任何查询,都永远不会返回这些字段。例如,您可以初始化 Prisma Client 并始终 omit 用户密码。

如果您想重新包含全局省略的字段,则可以在单个查询级别覆盖此设置

如何局部省略字段

最初在 Prisma ORM 5.13.0 中发布的 omitApi 预览功能的按查询版本也可用。此功能允许您在按查询级别 omit 字段,类似于您使用 select 的方式。

现在,您可以灵活地全局省略字段,仅在特定情况下选择它,反之亦然!

何时省略字段

既然有两种省略字段的方法,最常见的问题是“我应该在何时使用每种方法?”

如果您担心安全性或暴露敏感信息,则在大多数情况下,您将需要使用全局省略。这将保证新编写的查询不会无意中在查询中包含敏感数据。一个可靠的用例是始终省略用户密码。

但是,如果您担心数据优化,则需要使用局部省略。这将允许您在大多数查询中继续使用模型上的所有字段,然后在数据传输量成为关注点时缩小模型。例如,如果您的表中的每列数据都相当轻量,但其中一列包含大量 JSON 或 Blob 数据,则您可以轻松地排除该列,以便您的应用程序无需为每个请求传输所有这些数据。

我们需要您持续的反馈!

全局省略字段的能力是我们最受欢迎的功能,我们很高兴将其包含在 5.16.0 版本中。如果您有反馈,请随时添加到我们的专门的 GitHub 讨论中。到目前为止,我们已经就我们的 omitApi 预览功能进行了一些精彩的对话,我们很高兴保持这些对话继续进行。

不要错过下一篇文章!

注册 Prisma 新闻通讯