gpt4 book ai didi

mongoose - Mongoose 验证和使用 express-validator 有什么区别

转载 作者:行者123 更新时间:2023-12-04 02:36:20 24 4
gpt4 key购买 nike

根据我自己的知识,您可以在 mongoose 模式中进行几乎所有可以使用 express-validator 进行的验证。所以请我可以只使用 Mongoose ,或者即使我只创建新文档,我也需要使用 express-validator

最佳答案

实际上,您可以像使用 express-validator 一样在 mongoose 模式中进行几乎所有验证。 Mongoose 现在支持对 update 的验证同样,所以你很高兴。

我说两个案例:

  • 如果验证逻辑简单且小,没有问题
    关于 Mongoose 验证。但是在复杂的验证规则的情况下
    和多个字段,那么 express-validator 可能是更好的选择。

    如果 Mongoose built-in验证器不足以满足您的需求
    验证逻辑,你必须创建 custom validators .你会
    必须添加更多的代码行,结果是太大了
    Mongoose 模型文件。

    就我而言,我想要模型 js 文件作为
    尽可能干净。 Express-validator,它是一个包装器
    validator.js提供验证器(例如 isAlphanumeric、isEmail 和
    更多)这可以使您免于大量代码行。这样你
    将您的验证逻辑保存在单独的文件中,并拥有您的代码
    更干净,更有条理。
  • 另一点是关于代码执行流程 .
    Express-validator 是一个验证中间件。当您通过 post 请求发送表单时,您可以运行验证逻辑,如果出现任何错误,您将错误消息返回给客户端,而无需到达 Controller 或服务代码。

    同样,在我看来,运行 Controller 或其他服务代码(取决于您的架构)是一种不好的做法,从客户端发送的数据未经验证或清理。使用 Express-validator,当代码执行流到达 Controller 逻辑时,这意味着您要插入到数据库中的数据会得到很好的检查和清理。

    在不使用任何验证中间件的情况下,您必须运行所有 Controller 逻辑,并等待可能的验证错误,只有当流程到达 mongoose 保存或更新方法时。想象一下您的 Controller 包括十几个服务功能。如果要取消它,为什么要运行所有这些逻辑
    由于无效数据?

  • 总之,这两种方法都可以满足您的验证规则。在我看来,使用 Exspress-validator 以获得更清晰、更有组织的代码,以及更好、更安全的代码执行流程。

    关于mongoose - Mongoose 验证和使用 express-validator 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61688724/

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