Rom*_*kyi 3 mongoose node.js joi
据我了解@hapi/joi用于验证 HTTP 请求(标头、参数、正文等)。@hapi/joi提供它自己的模式验证。它还mongoose提供了它自己的模式验证,但在另一个级别上。如果hapi/joi尝试验证 HTTP 请求,则mongoose架构验证可确保插入数据库的数据有效。
正如您所看到的,这两个库都提供了自己的模式验证(在不同级别)。它需要额外的资源来保持两个模式彼此相同(这是一个容易出现错误的地方)。
问题是:我是否需要保留这两个库并支持两种模式?或者我可以使用mongoose它们的验证并且@hapi/joi是冗余?
提前致谢!
更新:
我找到了相关问题,但它无论如何都没有回答我的问题:(
您不必使用像 Joi 这样的模式验证包。
但两者都使用会很好。他们互相称赞。
Joi 用于 API,以确保客户端发送的数据有效。猫鼬模式用于确保我们的数据处于正确的形状。
使用 Joi 进行 API 验证有意义的场景:
我们通常对用户密码进行哈希处理,因此在我们的用户模式中,maxlength密码的选项可以比实际密码长度大得多。因此,使用 Joi,我们可以验证密码字段,使其不能超过登录路径中的 10 个字符。
猫鼬模式验证有意义的场景:
假设客户端发送了有效数据,我们可能在创建文档时忘记设置属性。如果我们在猫鼬模式中没有required: true该字段的选项,则创建的文档将不包含该字段。
在访问数据库之前尽快验证客户端数据也有利于安全性和性能。
使用两者的唯一缺点是一些验证重复。但他们似乎创建了一个名为joigoose的包来从 Joi 模式创建猫鼬模式。
| 归档时间: |
|
| 查看次数: |
2361 次 |
| 最近记录: |