使用express-validator确保整数或整数数组

问题描述 投票:0回答:1

我在尝试 Express 时对验证器感到困惑。

我收到的路由可选参数 flags 应该是整数或整数数组。

isArray()
之后链接的自定义验证器的帮助下检查整数部分的数组。

下面是我的验证代码,以及它输入的数据示例。


                oneOf([
                    body("flags").isInt(),
                    body("flags")
                        .optional()
                        .isArray()
                        .custom((value) => {
                            //return value.every(Number.isInteger);
                            if (!value.every(Number.isInteger)) {
                                throw new Error('permissionFlags should contain Integers only');
                            }
                            return true;
                        }),
                ], {
                    message: 'it should be an integer or an array of integers',
                }),

允许输入以下所有类型的值,但第一个不是整数数组。

flags: [ 8, 1, 'WRONG_PERMISSION' ] // this is not an int, neither an array of integers.

flags: [ 8, 1 ]

flags: 8
flags: ['WRONG_PERMISSION', 8, 1 ] // however, this wrong array is blocked.

预先感谢您的好建议。

json express express-validator
1个回答
0
投票

嗯,这个问题在更新版本的快速验证器中得到了解决。 我建议我自己和其他人使用

npm i express-validator@7
进行升级。 祝你好运

© www.soinside.com 2019 - 2024. All rights reserved.