大家好,谢谢大家抽出时间。我正在尝试创建一个验证中间件。我正在使用Joi来验证我从请求主体收到的信息。
我希望只允许以下字符串,例如:[‘a’,‘b’,‘c’],但也允许大小写实例。(例如"A"也是有效的(;
我想做的事:
const schema = Joi.object().keys({
letter: Joi.string().valid('a','b','c').insensitive()
})
schema.validate({letter: 'B'}) //return error but i want it to return 'B'
我也尝试过小写和大写函数与convert的每一种组合,但我无法使其工作。我希望例如{letter:‘A’}能被证明是有效的。
有没有一种方法可以将有效函数与不敏感函数结合起来,这样大写和小写都会被接受?
谢谢你抽出时间。
我想它运行得很好。如果您运行以下代码,您将获得{"letter": "b"}
const Joi = require("@hapi/joi");
const schema = Joi.object().keys({
"letter": Joi.string().valid("a", "b", "c").insensitive()
});
console.log(schema.validate({"letter": "B"}, {"convert": true}));
使用convert false,您将得到大写的B。
你可以在这里看到运行代码-https://repl.it/repls/HarmfulEvenPhases