Est*_*ask 1 javascript validation joi
可选变量通过 Joi 进行验证和调节:
optional = Joi.attempt(optional, Joi.array().optional().default([]));
Run Code Online (Sandbox Code Playgroud)
替换undefined为null对于可选参数来说是常见且方便的,它应该视为null并undefined回退到默认值。
如何才能实现呢?
也被这个问题困扰了一段时间,今天终于找到了解决办法。empty(null)为了达到想要的效果你必须使用:
import * as joi from "joi";
const testSchema = joi.array().items(joi.string()).empty(null).allow(null).default([]);
const data1 = undefined;
const data2 = null;
const data3 = [];
const res1 = joi.validate(data1, testSchema);
const res2 = joi.validate(data2, testSchema);
const res3 = joi.validate(data3, testSchema);
console.log("res1", res1.value, res1.error);
console.log("res2", res2.value, res2.error);
console.log("res3", res3.value, res2.error);
Run Code Online (Sandbox Code Playgroud)
返回:
res1 [] null
res2 [] null // <-- victory
res3 [] null
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4089 次 |
| 最近记录: |