我在loopback中创建了一个远程方法
XXX.remoteMethod('getAllGlobalFilters', {
'description': 'List of all GlobalFilters',
'http': {
'path': '/getAllGlobalFilters',
'verb': 'get'
},
'accepts': [
{'arg': 'filter', 'type': 'object', 'http': {'source': 'query'}}
],
'returns': {'arg': 'allGlobalFilters', 'type': 'array'}
});
XXX.getAllGlobalFilters = function(arg, callback) {
console.log(arg);
rtbSspPubFilter.find({
where: {
type: 15
},
include: [{relation: 'XXX'}]
}, function(err, data) {
if (err) {
return callback(err);
}
return callback(null, data);
});
};
};
我能够使用find并且远程方法工作正常,但我无法使用正则表达式,如远程方法中的过滤,如何访问循环默认过滤器。
我想使用可用于本机环回模型的类似json的过滤器。像上面的图片
答案 0 :(得分:2)
首先,作为远程功能的良好做法,不要使用arg
,而是使用您在远程方法中定义的名称filter
。这样,当您定义了多个属性时,就不那么容易混淆了。
但是,在您的问题中,您只需传递一个字符串,然后将其解析为函数中的JSON对象,如下所示:
XXX.remoteMethod('getAllGlobalFilters',
{
'accepts': [{'arg': 'filter','type': 'string'}],
'http': {
'path': '/getAllGlobalFilters',
'verb': 'get'
},
'returns': {'arg': 'allGlobalFilters', 'type': 'array'}
});
XXX.getAllGlobalFilters = function(filter, callback) {
filter = JSON.parse(filter);
rtbSspPubFilter.find(filter, function(err, data) {
if (err) {
return callback(err);
}
return callback(null, data);
});
};
希望这有帮助!