如何Joi-允许空的日期字符串[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?

编辑:在添加.required().default("")

时,删除Date: ""添加Cannot set parameter at row: 1. Wrong input for DATE type确实会出现另一个错误>

解决方法

您只需从上面的代码中删除require()

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