模型关系定义约定
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 loopback
到 apic edit
)可以读取、理解甚至编辑 JSON 文件中指定的元数据,但不能 parse/edit(任意)javascript源代码。
在幕后,解释模型 JSON 文件中的关系元数据的代码调用类似 Customer.embedsOne
的 API,因此最终结果是相同的。
在模型 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 loopback
到 apic edit
)可以读取、理解甚至编辑 JSON 文件中指定的元数据,但不能 parse/edit(任意)javascript源代码。
在幕后,解释模型 JSON 文件中的关系元数据的代码调用类似 Customer.embedsOne
的 API,因此最终结果是相同的。