gpt4 book ai didi

node.js - 我需要将@hapi/joi 与 Mongoose 一起使用吗?

转载 作者:行者123 更新时间:2023-12-05 02:08:32 27 4
gpt4 key购买 nike

我需要使用 @hapi/joi 吗?与 mongoose

据我所知,@hapi/joi 用于验证 HTTP 请求( header 、参数、正文等)。 @hapi/joi 提供它自己的模式验证。 mongoose 还提供了它自己的模式验证,但在另一个层面上。如果 hapi/joi 尝试验证 HTTP 请求,则 mongoose 模式验证可确保数据有效以插入数据库。

如您所见,这两个库都提供了自己的模式验证(在不同级别)。它需要额外的资源来保持两个模式彼此相等(这是错误的地方)。

问题是:我是否需要保留这两个库并支持两个模式?或者我可以使用 mongoose 和它们的验证,@hapi/joi 是冗余的吗?

提前致谢!

更新:

我找到了 related question , 但无论如何它都没有回答我的问题:(

最佳答案

您不必使用像 Joi 这样的模式验证包。

不过两者一起用会更好。他们互相称赞。

Joi 用于 API 以确保客户端发送的数据有效。 Mongoose 模式用于确保我们的数据处于正确的状态。

使用 Joi 进行 API 验证的场景:

我们通常对用户密码进行哈希处理,因此在我们的用户模式中,密码的maxlength 选项可以比实际密码长度大很多。因此,使用 Joi,我们可以验证密码字段,使其在登录路由中不能超过 10 个字符。

Mongoose 模式验证有意义的场景:

假设客户端发送了一个有效数据,有可能我们在创建文档时忘记设置一个属性。如果我们在该字段的 mongoose 模式中没有 required: true 选项,则创建的文档将没有该字段。

此外,在访问数据库之前尽快验证客户端数据有利于安全性和性能。

同时使用两者的唯一缺点是一些验证重复。但他们似乎创建了一个名为 joigoose 的包从 Joi 模式创建 Mongoose 模式。

关于node.js - 我需要将@hapi/joi 与 Mongoose 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60801039/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com