我想在它到达我的自定义验证器之前进行保释。
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(),
最佳答案
根据快速验证器文档:
.bail() 对于防止接触数据库或外部 API 的自定义验证器在您知道它会失败时运行非常有用。如果需要,可以在同一个验证链中多次使用。
在你的情况下,它会像:
[
check('id')
.exists({ checkNull: true }).bail()
.isMongoId().bail()
.custom(checkIfSessionExists).bail()
.custom(checkIfSessionIsCompletedOrFailed).bail()
.custom(checkIfSessionHasExpired).bail()
.custom(checkIfSessionContainsFrontImage)
...
...
];
因此,如果某些验证失败,则以下验证器将永远不会运行
关于node.js - 如何在带有express-validator的验证链中使用bail(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60205785/