gpt4 book ai didi

javascript - 在 Joi 验证中将 `null` 视为 `undefined`

转载 作者:行者123 更新时间:2023-11-28 18:30:54 24 4
gpt4 key购买 nike

可选变量通过 Joi 进行验证和调节:

optional = Joi.attempt(optional, Joi.array().optional().default([]));

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);

返回:

res1 [] null
res2 [] null // <-- victory
res3 [] null

关于javascript - 在 Joi 验证中将 `null` 视为 `undefined`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38022838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com