我试图在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' } },
...
}
还有其他人遇到过这个问题吗?它是一个环回错误吗?如果是这样,我该如何扭转局面?
答案 0 :(得分:0)
500内部服务器错误。错误:关系" 0"没有为用户模型定义。
此错误表示您的用户模型没有称为“离开”的关系。在您对用户模型的定义中,请确保为离开模型添加了关系。 (顺便说一下,如果departaments
是英文单词,则会出现拼写问题,departments
是正确的。)
正如link所说:
使用包含过滤器可以包含相关模型的结果 在查询中,例如,具有belongsTo或hasMany的模型 关系,以优化请求的数量。
此链接可以帮助您定义模型的关系:
如果您使用的是内置用户模型,则可以按照以下链接进行扩展:
https://loopback.io/doc/en/lb3/Extending-built-in-models.html
评论后编辑:
关于过滤器的另一个解释:
过滤器[include] [机构] =机构过滤器的含义是:
包括'机构'这是用户的关系,也包括' institute'这是一个'机构'的关系。 我在我的一个项目中测试了这个功能,它运行正常。