带有空值、未定义值、空值和默认值的 npm joi

var*_*run 1 node.js npm joi

我正在使用旧版本的 npm 模块 joi => 10.2.2,我想弄清楚如何构建架构,以便使用默认值允许空、空、未定义的值。

这有效https://github.com/hapijs/joi/issues/516

var schema = joi.object().keys({a:[joi.string().optional(), joi.allow(null)]})
Run Code Online (Sandbox Code Playgroud)

但我不知道如何指定默认值。

我正在寻找的是这个https://github.com/hapijs/joi/issues/1066(版本 v10.5.2),但使用旧版本 joi 的语法。

Cut*_*ert 6

empty()在 joi 10.2.2 中可用。您引用的问题只是文档更改。

const joi = require('joi');

const schema = joi.object().keys({
    a: joi.string().optional().allow(null).allow('').empty('').default('default value')
});

let t = {
    a: ''
};

let result = joi.validate(t, schema);

console.log(result);
// { error: null, value: { a: 'default value' } }
Run Code Online (Sandbox Code Playgroud)