如何指定Loopback 4模型中没有时间的日期?

时间:2019-09-09 12:50:09

标签: typescript loopback4

我正在使用loopback-4构建API,并且在模型中有一个名为“ day”的属性,该属性是Date类型(MySQL列也是Date类型)。 但我无法在其中发布诸如“ 2019-09-09”之类的值,因为它想要诸如“ 2019-09-09T12:41:05.942Z”之类的内容。 如何指定必须为日期(没有时间)?

我很困惑,因为您可以在查询参数(日期类型)中传递“ 2019-09-09”,但不能在模型中传递

我目前在模型中具有以下属性:

@property({
    type: Date,
    required: true,
    mysql: {
        columnName: 'day',
        dataType: 'date',
        dataLength: null,
        dataPrecision: null,
        dataScale: null,
        nullable: 'N',
    },
})
day: Date;

预期:接受“ 2019-09-09”作为值

实际上:422:日期应与格式“日期时间”匹配

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我使用 jsonSchema 来指定请求 JSON 的格式来解决它。

就您而言,您必须通过以下方式更改代码:

@property({
    type: 'date', // Types in LoopBack4 are not case-sensitive so Date is the same than date
    jsonSchema: { 
      format: 'date', //This can be changed to 'date-time', 'time' or 'date'
    },
    required: true,
    mysql: {
        columnName: 'day',
        dataType: 'date',
        dataLength: null,
        dataPrecision: null,
        dataScale: null,
        nullable: 'N',
    },
})
day: string; // Change this also

答案 1 :(得分:0)

应将类型更改为'date',而不是Date。这将允许使用更灵活的日期模式:

@property({
    type: 'date',
    required: true,
    mysql: {
        columnName: 'day',
        dataType: 'date',
        dataLength: null,
        dataPrecision: null,
        dataScale: null,
        nullable: 'N',
    },
})
day: string;