【问题标题】:express validator : how to check for "+xyz" using query check?express 验证器:如何使用查询检查来检查“+xyz”?
【发布时间】:2022-01-18 16:02:52
【问题描述】:

我正在尝试使用 express-validator 验证/允许诸如 +originalUrl、-originalUrl、+createdAt 之类的词集。

它支持允许模式的 .matches。 https://github.com/validatorjs/validator.js/

这是我的模式

query('sort_by')
    .optional()
    .matches(/^(+originalUrl|-originalUrl)$/)
    .withMessage({
      error: 'Invalid parameter value',
      detail: {
        max_results: 'parameter value (+originalUrl|-originalUrl) is allowed',
      },
    }),

试过.matches(/^(\+originalUrl|-originalUrl)$/)但没用。

不知何故,我觉得阅读“+”有问题。 在我的后端 + 被编码为 %20,所以尝试用 %20 替换 + 但没有成功。

更新:在记录查询参数时 + 被视为 ' orignalUrl'.isIn([' orginalUrl'] 现在可以工作,但我仍然如何转换或查询 + 因为有人可以输入 'originalUrl' 这仍然有效,因此得到验证这是不可取的。

也尝试询问验证人员 -> https://github.com/express-validator/express-validator/issues/1122

我如何检查 +something ?

【问题讨论】:

    标签: javascript node.js express express-validator


    【解决方案1】:

    将其作为 %20 发送并转义

    query('sort_by')
    .optional()
    .unescape()
    .matches(/^(+originalUrl|-originalUrl)$/)
    .withMessage({
      error: 'Invalid parameter value',
      detail: {
        max_results: 'parameter value (+originalUrl|-originalUrl) is allowed',
      },
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 2020-03-12
      • 1970-01-01
      • 2014-03-22
      相关资源
      最近更新 更多