如何创建用于搜索的环回远程方法

时间:2017-03-16 04:18:00

标签: angularjs node.js angular loopbackjs loopback

在我的环回应用程序中,我有一个名为test的模型。我需要搜索详细信息并根据多个条件显示详细信息。这是搜索字段的状态,优先级,消息和ID。我想根据这些搜索字段来显示详细信息。假设我给出状态是开放的,优先级低,细节应该满足这两个条件(即“AND”运算符)。我应该如何实现呢?我的数据库是Arango Db。我所拥有的是common / models / test.js

test.js

 module.exports = function (Test) {
 Test.search = function(callback){

 }
 };

我该如何实现?我是环绕和角度的新手。任何帮助都会有所帮助。

1 个答案:

答案 0 :(得分:1)

记录实施远程方法here

它需要两件事。首先,创建将远程调用的函数。在这里,您已将其称为search。 函数参数应包括所有请求参数(status priority message id)和回调作为最后一个参数。

然后,将此功能注册为远程方法。

在您的情况下,它应该提供以下代码

module.exports = function(Test){

    Test.search = function(status, priority, message, id, cb) {
      var results = ...// Your custom logic to find the results

      if (err) return cb(err); // if something went wrong. err is returned by your custom logic
      cb(null, results); // if results were found
    }

    Test.remoteMethod('search', {
          http: {
            verb: 'get'
          },
          accepts: [
            {arg: 'status', type: 'string', http: { source: 'query' } },
            {arg: 'priority', type: 'string', http: { source: 'query' } },
            {arg: 'message', type: 'string', http: { source: 'query' } },
            {arg: 'id', type: 'number'},
          ],
          returns: {arg: 'results', type: 'Object'} // To return a JSON object for instance
    });
};

然后,使用GET api/Tests/search?status=open&priority=high&...

调用您的方法

要搜索条目,您还可以使用querying approach