javascript - Loopback hasOne 和 hasMany 的模型相同

标签 javascript node.js loopbackjs strongloop

我尝试制作一个家谱。我有一个模范家庭成员,它本身应该有两个关系。 第一个是配偶,第二个是 child 。现在我尝试了:

"relations": {
  "spouse": {
    "type": "hasOne",
    "model": "familyMember",
    "foreignKey": "familyMemberId"
  },
  "children": {
    "type": "hasMany",
    "model": "familyMember",
    "foreignKey": "familyMemberId"
  }
}

但是当我创建一个 child 并在配偶之后它会返回:

{
  "error": {
    "name": "Error",
    "status": 500,
    "message": "HasOne relation cannot create more than one instance of familyMember"
  }
}

当我请求配偶时,它会返回我之前生下的 child 。

如何解决这个问题?

最佳答案

据我从您的问题中了解到,您有一个模型familyMembers,并且您分别将同一模型的属性childrenspouse作为关系hasManyhasOne引用。

这不是实现您想要通过环回实现的目标的最佳方式。而且它有可能出错。

最好的方法是首先通过环回创建一个模型 FamilyMember

然后通过继承基础familyMember模型创建两个不同的模型childrenspouse以及其他相关成员模型。

然后轻松添加这些模型之间的关系。

欲了解更多信息,请阅读。 Extending a model in loopback

关于javascript - Loopback hasOne 和 hasMany 的模型相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34120247/

相关文章:

javascript - 如何从loopback API获取当前用户的数据?

javascript - 单击 Bootstrap Accordion 时打开 url/文件

javascript - 如何使用 jQuery 将变量发布到 PHP?

node.js - 我应该为graphql和sequelize中的所有关系定义一对多关联吗?

node.js - 在没有第三方服务的情况下使用 Node JS 发送短信

javascript - 在环回中将数据保存到现有模型实例中

node.js - 使用 JWT 进行环回身份验证

javascript - 隐藏一个 bootstrap 表头

javascript - CSS jQuery - 展示图像(淡入淡出)

node.js - 当链接文件不公开时替代 sendFile