【发布时间】:2015-09-24 03:10:14
【问题描述】:
所以我设置了一些非常简单的东西来学习如何使用 Loopback。
型号如下:
Person
- based on built in User model
food_pref
typeId (number)
personId (number)
food_type
type (string)
关系:
Person has many food_prefs (foreign key: personId)
food_pref belongs to Person (foreign key: personId)
food_pref belongs to food_type (foreign key: typeId)
创建了一个自动生成的方法,该方法根据 Person 的 id 返回 food_prefs。
People/{id}/foodPrefs
这会返回:
[
{
"typeId": 0,
"personId": 0,
"id": 0
}
]
我要做的是添加一个名为“getPrefs”的单独远程方法,该方法根据 food_pref 中的 typeId 返回 food_type 下的类型名称。
假设 typeId 是 1 并且 food_types 中的 id 1 是意大利食品,那么远程方法将返回:
{
"type": "Italian Food"
}
有人告诉我使用 Person.js 并添加一些类似的内容,但我对 include 语句以及括号内的操作感到非常困惑。通常它会因错误提示而崩溃:错误:未为 Person 模型定义关系“food_pref”,请参阅下面的建议:
module.exports = function(Person) {
Person.getPrefs = function(personId, cb) {
Person.findById(personId, { include: { food_pref: "food_type" } }, function(err, user) {
if (err) throw err;
});
}
Person.remoteMethod (
'getPrefs',
{
http: {path: '/getPrefs', verb: 'get'},
accepts: {arg: 'personId', type: 'number', http: { source: 'query' } },
returns: {arg: 'type', type: 'string'}
}
);
};
我在这里做错了什么?
【问题讨论】:
标签: node.js api relationship strongloop loopback