2

我正在使用 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:天应该匹配格式“日期时间”

4

2 回答 2

2

我遇到了同样的问题,我使用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

于 2021-03-16T15:05:28.280 回答
0

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

@property({
    type: 'date',
    required: true,
    mysql: {
        columnName: 'day',
        dataType: 'date',
        dataLength: null,
        dataPrecision: null,
        dataScale: null,
        nullable: 'N',
    },
})
day: string;
于 2020-05-04T09:01:03.757 回答