Jat*_*tra 5 javascript node.js express express-validator
我正在尝试使用 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',
},
}),
Run Code Online (Sandbox Code Playgroud)
尝试过.matches(/^(\+originalUrl|-originalUrl)$/)但没有成功。
不知怎的,我觉得阅读“+”有问题。 在我的后端+被编码为 %20,因此尝试用 %20 替换 + 但没有成功。
更新:在记录查询参数 + 时,它被视为' orignalUrl'并且.isIn([' orginalUrl']现在可以工作,但是我仍然如何在 + 上进行转换或查询,因为有人可以输入“originalUrl”,这仍然可以工作,因此得到验证,这是不可取的。
也尝试询问验证者 -> https://github.com/express-validator/express-validator/issues/1122
我如何检查+某事?
小智 0
将其作为 %20 发送并执行 unescape
query('sort_by')
.optional()
.unescape()
.matches(/^(+originalUrl|-originalUrl)$/)
.withMessage({
error: 'Invalid parameter value',
detail: {
max_results: 'parameter value (+originalUrl|-originalUrl) is allowed',
},
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
416 次 |
| 最近记录: |