问题描述
我正在使用 express-validator 包,我想将 if 和 optional 结合起来,就像这样
我设置了 config.requireFieldAB = false
await body("fieldAB")
.if(config.requireFieldAB === false).optional()
.isstring()
.bail()
.withMessage(CUSTOM_ERROR_MESSAGE)
.run(req);
使用上面的代码运行验证总是给我
TypeError: Cannot use 'in' operator to search for 'run' in false
at ContextHandlerImpl.if (\node_modules\express-validator\src\chain\context-handler-impl.js:16:19)
at signupValidationRules (\controllers\myController.js:62:15)
at process._tickCallback (internal/process/next_tick.js:68:7)
我可以让它工作的唯一方法是如果我这样做
if(config.requireFieldAB) {
await body("fieldAB")
.isstring()
.bail()
.withMessage(RESPONSES.VALIDATION_ERROR)
.run(req);
}
这使它成为可选的,但我更喜欢使用 .if().optional() 的第一种方法
有可能吗?如果是,我做错了什么导致“无法使用‘in’运算符搜索‘运行’错误”错误?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)