Loopback远程方法没有返回响应体

时间:2015-11-16 16:21:47

标签: loopbackjs

所以我在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返回查询结果。如何将查询的输出放在响应主体中?

1 个答案:

答案 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的使用情况。