16

POST リクエストで配列の検証を追加しようとしています

Joi.array().items(Joi.string()).single().optional()

ペイロードで null 値を許可する必要があります。これを行う方法を教えてください。

4

3 に答える 3

32

配列を null にすることを許可する場合は、次を使用します。

Joi.array().items(Joi.string()).allow(null);

配列内で null または空白文字列を許可する場合は、次を使用します。

Joi.array().items(Joi.string().allow(null).allow(''));

例:

const Joi = require('joi');

var schema = Joi.array().items(Joi.string()).allow(null);

var arr = null;

var result = Joi.validate(arr, schema); 

console.log(result); // {error: null}

arr = ['1', '2'];

result = Joi.validate(arr, schema);

console.log(result); // {error: null}


var insideSchema = Joi.array().items(Joi.string().allow(null).allow(''));

var insideResult = Joi.validate(['1', null, '2'], insideSchema);

console.log(insideResult);
于 2017-01-09T21:00:34.420 に答える
2

私が投稿しているものはあなたが探しているものではないことはわかっていますが、同様の問題に遭遇したためです.

だから私の問題は:オブジェクトに空の配列を許可したくない

私の解決策:

// if you have array of numbers

key: joi.array().items(joi.number().required()).strict().required()

// if you have array of strings

key: joi.array().items(joi.string().required()).strict().required()
于 2019-10-19T11:08:54.547 に答える