首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在带有express-validator的验证链中使用bail()

如何在带有express-validator的验证链中使用bail()
EN

Stack Overflow用户
提问于 2020-02-13 18:36:49
回答 1查看 1.9K关注 0票数 1

我想在它到达我的自定义验证器之前退出。

代码语言:javascript
复制
   public classification = () => [
        param("id").exists({ checkNull: true }).isMongoId().bail(),
        param("id")
            .custom(checkIfSessionExists)
            .custom(checkIfSessionIsCompletedOrFailed)
            .custom(checkIfSessionHasExpired)
            .custom(checkIfSessionContainsFrontImage),
        validationResultHandler,
    ]

为什么我不能在这里应用.bail()param("id").exists({ checkNull: true }).isMongoId().bail(),

EN

回答 1

Stack Overflow用户

发布于 2020-06-17 03:20:46

根据express-validator文档:

.bail()对于防止自定义验证器在您知道它将失败时访问数据库或外部API而运行非常有用。如果需要,可以在同一验证链中多次使用。

在您的情况下,它将如下所示:

代码语言:javascript
复制
[
  check('id')
   .exists({ checkNull: true }).bail()
   .isMongoId().bail()
   .custom(checkIfSessionExists).bail()
   .custom(checkIfSessionIsCompletedOrFailed).bail()
   .custom(checkIfSessionHasExpired).bail()
   .custom(checkIfSessionContainsFrontImage)
  ...
  ...
];

因此,如果某些验证失败,则以下验证器将永远不会运行

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60205785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档