You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LoopBack 4模型如何配置Date类型以接收不带时间的日期格式?

解决LoopBack 4中Date类型属性接受纯日期格式的问题

这问题我之前也碰到过,LoopBack 4默认会把模型里的Date类型属性映射为OpenAPI规范中的date-time格式,所以提交2019-09-09这类纯日期字符串时会触发422校验错误。而查询参数的处理逻辑和请求体里的模型属性校验不一样,所以能正常解析纯日期。

要让模型属性接受纯日期格式,只需要在@property装饰器里手动指定OpenAPI的格式为date即可,具体修改如下:

@property({
  type: Date,
  required: true,
  mysql: {
    columnName: 'day',
    dataType: 'date',
    dataLength: null,
    dataPrecision: null,
    dataScale: null,
    nullable: 'N',
  },
  // 新增这部分配置,指定OpenAPI格式为纯日期
  openapi: {
    format: 'date',
  },
})
day: Date;

原理说明:

  • 加上openapi.format: 'date'后,LoopBack会使用OpenAPI的date格式规则做校验,该格式要求输入为YYYY-MM-DD的字符串,正好符合你的需求。
  • 当请求体传入2019-09-09时,LoopBack会自动将其解析为Date对象(默认会转为UTC时间的当天0点),但由于你的MySQL列是date类型,最终写入数据库时只会保留日期部分,完全不影响使用。

这样修改后,你的API就能正常接受2019-09-09这类纯日期值了。

内容的提问来源于stack exchange,提问作者Clemens Ertle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:29:27