【发布时间】:2015-09-30 09:37:53
【问题描述】:
我正在将 Loopback 用于节点 JS 应用程序。 Loopback 自动生成 CRUD api。所以,我试图改变一个get api,所以也包括一个表。我可以通过在查询中添加包含过滤器来做到这一点
/api/expensecategories?filter[include]=vendors
但我希望/api/expensecategories 与桌子一起返回。为此,我之前使用beforeRemote() 方法来更改请求。
我的代码是:
expensecategories.beforeRemote('find', function (ctx, inst, next) {
console.log(ctx.req.url);
ctx.req.url = "/?filter[include]=vendors";
console.log(ctx.req.url);
console.log('GET api called');
next();
});
这是更改请求 url 但不更改响应,它是相同的并且不包括表。我尝试更改 req 中的所有内容,例如
ctx.req.query = {filter: { include: 'vendors' }};
但没用。知道我怎么能做到这一点。两个表的关系都已定义,我可以通过制作自定义 api 来获得所需的结果,
expensecategories.expensecategory = function (cb) {
expensecategories.find({
include: {
relation : 'vendors',
}
}, function(err, data) {
cb(null, data);
});
};
expensecategories.remoteMethod (
'expensecategory', {
description: 'get all expense types + vendors',
http: {path: '/yes', verb: 'get'},
returns: {arg: 'expensecategory', type: 'string'}
}
);
所以,我的表关系和一切都是正确的。我也希望/expensecategories 得到相同的结果。救命!!!
【问题讨论】:
标签: javascript node.js express loopbackjs