createdAt updatedAt aqueduct

问题描述 投票:1回答:1

在mongoose中,有一个模式的timestamp: true选项,可以为任何添加的模型项自动填充createdAtupdatedAt

Aqueduct中有类似的东西吗?

如果没有,我该如何手动执行此操作?

我目前尝试了这个,这是正常的失败,像往常一样:

  @Operation.post()
  Future<Response> createICD(@Bind.body() ICD body) async {
    body.createdAt = DateTime.now();
    final query = Query<ICD>(context)..values = body;
    final insertICD = await query.insert();

    return Response.ok({'state': true, 'data': insertICD});
  }

上述方法的错误是:

Converting object to an encodable object failed: Instance of 'ICD'
dart aqueduct
1个回答
1
投票

发送回复时失败了;你需要在asMap()上打电话给insertICD。您提供的响应正文对象是标准Dart映射 - 它没有任何特殊的编码行为,因此它不知道如何编码像ManagedObject这样的复杂类型。在托管对象上调用asMap()以将其转换为标准Dart贴图:

@Operation.post()
Future<Response> createICD(@Bind.body() ICD body) async {
  body.createdAt = DateTime.now();
  final query = Query<ICD>(context)..values = body;
  final insertICD = await query.insert();

  return Response.ok({'state': true, 'data': insertICD.asMap()});
}

另外,请参阅http://aqueduct.io/docs/db/validations/#update-and-insert-callbacks以在创建/更新事件中设置时间戳。

© www.soinside.com 2019 - 2024. All rights reserved.