Reu*_*rag 3 javascript validation node.js joi hapi.js
大家好,感谢您抽出时间。我正在尝试创建一个验证中间件。我正在使用 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'
Run Code Online (Sandbox Code Playgroud)
我还尝试了小写和大写函数与转换的每种组合,但我无法使其工作。我希望例如 {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}));
Run Code Online (Sandbox Code Playgroud)
使用convert false,你会得到大写的B。
您可以在此处看到正在运行的代码 - https://repl.it/repls/HarmfulEvenPhases