Loopback 相关的模型属性问题

Posted

技术标签:

【中文标题】Loopback 相关的模型属性问题【英文标题】:Loopback related model property problems 【发布时间】:2015-11-02 11:06:16 【问题描述】:

我有一个user 模型(从内置User 扩展)和一个相关的UserDetail 模型:

user 关系:

    "relations": 
        "userDetails": 
            "type": "hasOne",
            "model": "UserDetail",
            "foreignKey": "userDetailUserId"
        ,

如果我在节点中运行下面的代码,我可以看到返回对象上的 userDetails 属性,但不能直接访问它。

var User = app.models.user;
User.findOne(
      include: 'userDetails',
      where: id: userId
,function(err,user)
  console.log('log');
  console.log(user);
  console.log(user.userDetails);
  console.log(user.userDetailFirstName);
  console.log(user.userDetails.userDetailFirstName);
)

日志如下:

log

 my user details ....
id: 100,
userDetails:
    userDetailId: 13,
   userDetailUserId: 100,
   userDetailFirstName: 'Stephen',
   userDetailLastName: 'Knox', 
 [Function]
   getAsync: [Function],
   create: [Function],
   build: [Function],
   update: [Function],
   destroy: [Function],
   _targetClass: 'UserDetail' 

undefined
undefined

我得到的是hasOne methods,而不是我可以看到的userDetails 对象。这看起来很奇怪,但我找不到模型或关系定义有任何问题。

谁能帮忙?

【问题讨论】:

@stev-k :尝试了所有方法,但仍然不适合我。 :( 有什么建议吗? 【参考方案1】:

我相信为了访问一个相关的模型,你需要调用 user.userDetails()。

或者,你可以调用 user.toJSON(),这会给你一个普通的 JS 对象

【讨论】:

尝试了所有方法,但仍然不适合我。 :( 有什么建议吗?【参考方案2】:

我一直在努力理解为什么我没有得到相关的对象。尝试使用.toJSON() 修复它。

【讨论】:

以上是关于Loopback 相关的模型属性问题的主要内容,如果未能解决你的问题,请参考以下文章

扩展内置用户模型以支持环回中的更多属性和行为

Loopback - 扩展内置模型的最简单方法

Loopback-4 通过模型添加时间戳 createdAt 和 updatedAt

loopback 4 从数据库中发现模型

Loopback 4删除关系

更新了 Loopback 中行为不一致的相关对象