尝试访问Loopback相关模型查询

时间:2015-06-18 22:49:10

标签: javascript node.js loopbackjs

我正在使用Loopback Framework,做一个web项目。 但我认为我在这里暴露的问题与此没什么关系,但是具有一般的Javascript / Node.JS知识。

在代码的一部分,我正在做:

roleMapping.find({
        where: {
            principalType: 'USER',
            principalId: context.principals[0].id
        },
        include: 'role'
    }, function(err, roles){
        console.log(roles[0]);
        for (var i in roles)
        {
            if (roles[i].role.name === 'teamLeader' &&
                roles[i].groupId === context.modelId)
            {
                cb(null,true);
            }else {
                cb(null,false);
            }
        }
});

好的,但尝试比较roles[i].role.name时失败了。 所以,我记录了roles[i]对象包含的内容。

    { groupId: 1,
  id: 3,
  principalType: 'USER',
  principalId: 1,
  roleId: 2,
  role: 
   { id: 2,
     name: 'teamLeader',
     description: 'The leader(s) of a team',
     created: null,
     modified: null } }

好的,没有错,但它仍然失败,所以我试图只打印role属性。令我惊讶的是:

{ [Function]
  update: [Function],
  destroy: [Function],
  create: [Function],
  build: [Function],
  _targetClass: 'Role' }

那么,role属性似乎是某种功能?但之前是如何正确印刷的?

最终,我在沮丧中迷失了{I} {/ 1}}

然后我可以正常访问对象的每个属性,但这不是干净也不正常。

这在JS编程的多年中第一次引起了我的注意(虽然有点业余),如果有人能向我澄清这一点,我会很高兴。感谢

编辑:它似乎特定于此框架,因此我正在更改标题以帮助社区。

1 个答案:

答案 0 :(得分:7)

我刚发现issue 1425链接到以下docs

  

使用Node.js API,您需要调用input.nextLine();将返回的模型实例与相关项转换为普通JSON对象

     

请注意关系属性[...]指向关系方法的JavaScript 函数

所以看来你必须使用

toJSON()