模型关系定义约定

Convention for model relation definition

在模型 JSON 文件中定义像 embedsOne 这样的关系的正确环回约定是这样的:

{
  "name": "Customer",
  "base": "PersistedModel",
  "idInjection": true,
  "properties": {
    "name": {
      "type": "string"
    }
  },
  "relations": {
    "address": {
      "type": "embedsOne",
      "model": "Address",
      "property": "billingAddress",
    }
  }
}

或者模型的JS文件,像这样:

Customer.embedsOne(Address, {
  as: 'address', // default to the relation name - address
  property: 'billingAddress' // default to addressItem
});

如果你不会改变模型结构,第一个是首选。

第二个是对称的。同样在动态结构中,您需要使用第二个

免责声明:我是 LoopBack 项目的技术负责人。

推荐的方法是通过模型 JSON 文件定义模型关系,如第一个示例所示。

主要原因是我们的工具(从 yo loopbackapic edit)可以读取、理解甚至编辑 JSON 文件中指定的元数据,但不能 parse/edit(任意)javascript源代码。

在幕后,解释模型 JSON 文件中的关系元数据的代码调用类似 Customer.embedsOne 的 API,因此最终结果是相同的。