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 issues 上的反馈以及对我们最初实现的 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 新闻邮件