如何 Joi-Allow 一个空的日期字符串 [Joi]

How to Joi-Allow an empty Date String [Joi]

如标题所述,如何通过 Joi 验证允许空 Date-String。

添加时:

Date: ""

它得到了问题message: ""Date" must be a number of milliseconds or valid date string"

用这个 Joi-Validation:

"Date": Joi.date().required().allow("").allow(null).options(validationErrors);

问题:Joi验证如何允许空的Date-String?

EDIT:通过删除:.required() 和/或添加 .default("") 我在添加 Date: ""、[=17 时确实遇到了另一个错误=]

您可以简单地从上面的代码中删除 required()

"Date": Joi.date().allow("").allow(null).options(validationErrors);

有效:new Date()""(空字符串)

joi版本17.2.1

const joi = require('joi');

const schema = joi.object().keys({
  "Date": joi.alternatives([
    joi.date(),
    joi.string().valid('')
  ]).required()
}).required();

// success
const value = {
  "Date": "",
};

// success
const value = {
  "Date": new Date(),
};

// error
const value = {
  "Date": null,
};

// error
const value = {

};

// error
const value = {
  "Date": "invalid string"
};


const report = schema.validate(value);
console.log(report.error);