【问题标题】:Loopback 4 controller Omit<T,K>Loopback 4 控制器省略<T,K>
【发布时间】:2020-04-16 13:09:41
【问题描述】:


我在 Loopback 4 中迈出了第一步,我一直在尝试按照他们必须生成新 REST Api 的教程进行操作。
问题是,在创建了我的模型、数据库和存储库之后,我开始开发我的控制器类并遇到了一段我们在文档中没有提到的代码。

我已在下面发出信号:

async createTodo(
    @requestBody({
      content: {
        'application/json': {
          schema: getModelSchemaRef(Todo, {title: 'NewTodo', exclude: ['id']}),
        },
      },
    })
 todo: **Omit<Todo, 'id'>,** <----------
  ): Promise<Todo> {
    ...
    return this.todoRepository.create(todo);
  }

我的问题是:这个省略是为了什么?我尝试从代码中删除它,结果与我没有它的结果相同。

另外,在那个发布请求中,当我收到答案时,我想隐藏对象的 id 属性。我怎样才能只为这个请求的响应做到这一点?

提前致谢!

【问题讨论】:

    标签: typescript loopback loopback4


    【解决方案1】:

    这比Loopback 更多Typescript

    Loopback 使用 Typescript,因此您通常会定义类型和接口。控制器请求体,需要定义接口。

    Omit&lt;T,K&gt;

    通过从T 中选取所有属性然后删除K 来构造一个类型。

    在这里,我假设您已将 id 属性设置为自动生成或自己生成。而id 属性不是用户输入。您的前端未发送 id 值。然后您需要创建一个具有TodoModel 的所有属性的接口,除了id。现在您可以使用接收到的对象创建新记录。

    你可以阅读更多关于 Typescript 实用程序here

    另外,Loopaback4 使用DataObject&lt;Model&gt; 将模型转换为接口。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-17
      • 1970-01-01
      • 2011-03-11
      • 2020-09-09
      • 2019-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多