所以我在loopback中创建了这个远程方法:
Message.findUserMessages = function(id,cb) {
Message.find({
where: {
from_user_id: id
},
include: {
"relation":"message_text"
}
});
};
Message.remoteMethod('findUserMessages', {
accepts: {
arg: 'id',
type: 'number'
},
returns: {
arg: 'response',
type: 'Object'
},
http: {
path: '/user/',
verb: 'get'
}
});
但是当我查看响应时,它不会在响应正文中显示输出。我知道访问正确结果的唯一原因是我的DB返回查询结果。如何将查询的输出放在响应主体中?
答案 0 :(得分:1)
正确的代码应该是:
Message.findUserMessages = function(id, cb) {
Message.find({
where: {
from_user_id: id
},
include: {
"relation":"message_text"
}
}, function(err, response) {
if (err) throw err;
cb(null, response);
});
};
Message.remoteMethod('findUserMessages', {
accepts: {
arg: 'id',
type: 'number',
required: true,
http: { source: 'path' }
},
returns: {
arg: 'response',
type: 'Object',
root: true
},
http: {
path: '/user/:id/findUserMessages',
verb: 'get'
}
});
您忘记回复回复。
注意:我也改变了http url路径,希望你这样想。并且参数的来源也设置为path
。您可能还想查看root
的使用情况。