javascript - Loopback相关模型属性问题

标签 javascript node.js orm loopbackjs

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

用户关系:

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

如果我在 Node 中运行下面的代码,我可以在返回的对象上看到 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

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

有人能帮忙吗?

最佳答案

我认为,为了访问相关模型,您需要调用 user.userDetails()。

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

关于javascript - Loopback相关模型属性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33476163/

相关文章:

javascript - 如何将递增的 for 循环变量传递给 Node.js 中的函数?

mysql - Doctrine/mysql的图形关系图?

javascript - 电话间隙 + jqmobile : how to change page correctly

javascript - jQuery.change() 与 addEventListener 不兼容?

Javascript/Node Js - 为每个实例创建新变量

java - 是否有一个基于 hibernate 构建的简单、可扩展的 CRUD 存储库?

javascript - TypeOrm 保存方法不更新对象

javascript - 设置 Sails js View 扩展不起作用

javascript - 如何混合下划线函数以使用 _.contains() 的自定义比较算法?

node.js - 如何使用两个LocalStrategy?