Loopbackjs 在回送版本LB4中使用嵌套对象和数组创建模型
我第一次开始使用Loopback,我开始使用LB4,他们的最新版本。我希望根据我遵循的JSON模式创建一个包含嵌套对象和数组的模型,该模式允许我创建模式的基本值,但我需要在对象和数组中创建字段,但我找不到帮助我理解这一点的文档或文章 这是我试图创建LB4模型的JSON模式:Loopbackjs 在回送版本LB4中使用嵌套对象和数组创建模型,loopbackjs,Loopbackjs,我第一次开始使用Loopback,我开始使用LB4,他们的最新版本。我希望根据我遵循的JSON模式创建一个包含嵌套对象和数组的模型,该模式允许我创建模式的基本值,但我需要在对象和数组中创建字段,但我找不到帮助我理解这一点的文档或文章 这是我试图创建LB4模型的JSON模式: "socialProfiles": { "facebook": { "linked": 1, "pullData": 1, "linkID": 4434343,
"socialProfiles": {
"facebook": {
"linked": 1,
"pullData": 1,
"linkID": 4434343,
"profile": "https://www.facebook.com/FBURL",
"registered": {
"date": "2018-05-04T12:41:27.838Z",
"verified": "2018-05-04T12:41:27.838Z",
"by": {
"id": 1,
"user": "USER"
}
}
},
}
使用LB4文档,我可以创建我的主字段socialProfiles
,但我找不到在该对象中创建字段的位置。。。这是我的LB4型号代码
import {Entity, model, property} from '@loopback/repository';
@model()
export class Users extends Entity {
@property({
type: 'object',
})
socialProfiles?: object;
constructor(data?: Partial<Users>) {
super(data)
}
}
从'@loopback/repository'导入{Entity,model,property};
@模型()
导出类用户扩展实体{
@财产({
类型:“对象”,
})
社会福利:对象;
构造函数(数据?:部分){
超级(数据)
}
}
如何执行此操作?如果要将对象存储在模型本身中(不使用关系),可以使用以下内容创建接口:
export interface ISocialProfile {
"linked": number,
"pullData": number,
"linkID": number,
"profile": string,
"registered": {
"date": Timestamp,
"verified": Timestamp,
"by": {
"id": number,
"user": string
}
}
}
然后在您的模型中,只需添加以下类型:
socialProfiles?: {[name: string]: ISocialProfile};
感谢@angelwally,查看关系doco,它有hasMany和belongsTo,虽然我理解这个概念,但是否需要为模型中的所有/任何类型的对象/数组定义关系?我提出这个问题的原因是,我已经设计了大约40个端点,并且重复使用了相当多的模型和组件,但是在端点中仍然有一些是一次性使用的对象,我想确保我以最好的方法完成这项工作,以便轻松更新我的模型。。我可以创建多个模型并在上面的内容中引用它们吗?嗯,在决定时有两件事需要考虑。首先,
@property->type:object
将意味着模型将保存为对象(可能是数据库中的文本字段,具体取决于您的连接器)。那么这样做完全没问题。我上面写的只是一个键入,以强制执行代码在整个代码中是正确的,因此它对DB中的模型没有影响。另一件事是关系。如果您在某些情况下需要它们,它们是很好的(请参阅文档),但在您的情况下,它似乎没有必要(您不想使用此属性进行筛选或搜索,对吗?)完美,这正是我要寻找的解释和代码,谢谢@angelwally!