首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用loopbackjs添加嵌套的远程方法

使用loopbackjs添加嵌套的远程方法
EN

Stack Overflow用户
提问于 2015-12-09 01:20:11
回答 3查看 584关注 0票数 5

我正在使用strongloop的loopbackjs来实现一个API。

对于模型Cat,我定义了一个远程方法,让我们称其为meow

所以我可以这样做:

GET /cats/{:id}/meow

Cat模型belongsTo User模型。

现在我希望能够做这样的事情:

GET /users/{:id}/cats/{:id}/meow

有人知道怎么做吗?

我已经尝试过nestRemoting,它只适用于嵌套的“蓝图”方法。

EN

回答 3

Stack Overflow用户

发布于 2015-12-12 02:46:19

您可以在用户模型中定义一个远程方法,然后使用它来调用CatModel的meow方法

代码语言:javascript
复制
UserModel.someRemoteMethod = function(id1,id2,cb){
     CatModel.meow(id2,cb);
 }


  UserModel.remoteMethod(
    'someRemoteMethod',
    {
      accepts: [
        {arg: 'id1', type: 'number', required: true},
        {arg: 'id2', type: 'number', required: true}
      ],
      http: {path: '/:id1/cats/:id2/meow', verb: 'get'}
    }
  );
票数 3
EN

Stack Overflow用户

发布于 2016-05-18 13:20:42

使用nestRemoting('relationName')。它没有很好的文档记录,但对于您的模型,您可以使用:

代码语言:javascript
复制
User.on('attached', function() {
   User.nestRemoting('catRelation');
}

把它放到你的user.js文件中,你就应该得到你想要的端点了。

票数 0
EN

Stack Overflow用户

发布于 2017-12-10 04:38:16

我有一个解决方案需要和大家分享

nestRemoting函数接受一个options json对象,其中包含一个名为filterMethod的属性。此方法过滤模型函数以仅获取默认方法,因此我在( else if )中传递了此带有自定义的属性回调函数,以检查我的远程方法( DoWhat )并返回它

代码语言:javascript
复制
server.models.Client.nestRemoting('units', {filterMethod: function(method, relation) {
        let regExp = /^__([^_]+)__([^_]+)$/;
        let matches = method.name.match(regExp);
        if (matches) {
            return '__' + matches[1] + '__' + relation.name + '__' + matches[2];
        } else if (method.name === 'DoWhat') {
            return method.name;
        }
    }});

我希望这个解决方案能帮助你

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34162099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档