【问题标题】:Loopback remote method not returning response body环回远程方法不返回响应正文
【发布时间】:2015-11-16 16:21:46
【问题描述】:

所以我在环回中创建了这个远程方法:

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'
        }
    });

但是当我查看响应时,它不会在响应正文中显示输出。我知道正在访问正确结果的唯一原因是我的数据库正在返回查询结果。如何将查询的输出放入响应正文中?

【问题讨论】:

    标签: loopbackjs


    【解决方案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 的用法。

    【讨论】:

      猜你喜欢
      • 2016-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多