LoopBack / Node.js查询中的多个包含在不同深度上

时间:2017-08-18 15:27:09

标签: javascript node.js loopbackjs

我试图在node.js Loopback服务器上加载一个对象,我想在同一个查询中加载多个相关对象。这些相关对象位于不同的深度。这是查询:

scanf()

请注意, [institutes] = institute 有两个级别,部门个人资料只有一个。

这会给我一个错误: 500内部服务器错误。错误:关系" 0"没有为用户模型定义。

在node.js调试中,我注意到生成的最终JSON查询似乎是错误的:

/api/MyUsers/114?filter[include][institutes]=institute&filter[include]=departments&filter[include]=profiles

以下是MyUser的模型:

{ include: 
     { '0': 'departments',
       '1': 'profiles',
       institutes: 'institute' } },
     ...
}

还有其他人遇到过这个问题吗?它是一个环回错误吗?如果是这样,我该如何扭转局面?

1 个答案:

答案 0 :(得分:0)

500内部服务器错误。错误:关系" 0"没有为用户模型定义。

此错误表示您的用户模型没有称为“离开”的关系。在您对用户模型的定义中,请确保为离开模型添加了关系。 (顺便说一下,如果departaments是英文单词,则会出现拼写问题,departments是正确的。)

正如link所说:

  

使用包含过滤器可以包含相关模型的结果   在查询中,例如,具有belongsTo或hasMany的模型   关系,以优化请求的数量。

此链接可以帮助您定义模型的关系:

https://strongloop.com/strongblog/defining-and-mapping-data-relations-with-loopback-connected-models/

如果您使用的是内置用户模型,则可以按照以下链接进行扩展:

https://loopback.io/doc/en/lb3/Extending-built-in-models.html

评论后编辑:

关于过滤器的另一个解释:

过滤器[include] [机构] =机构过滤器的含义是:

包括'机构'这是用户的关系,也包括' institute'这是一个'机构'的关系。 我在我的一个项目中测试了这个功能,它运行正常。