如何从 LoopBack 模型中读取查询过滤器

How to Read Query Filters from Within a LoopBack Model

我们正在为我们的 REST API 使用 LoopBack,并且需要从 LoopBack 模型的自定义逻辑中访问查询过滤器(在客户端中指定)。例如,给定此查询:

http://localhost:1337/api/Menus/formatted?filter[where][id]=42

我们如何从 'Menu.formatted' 代码中访问 'where' 参数:

function asMenu(Menu) {
    Menu.formatted = function (callback) {

        <<Need to access the query filter here...>>

filter 查询参数声明为 formatted 远程方法的参数,然后像 callback 参数一样访问它。

查看如何describe arguments in docs

引入过滤器的方法应该与此类似:

module.exports = function(Menu) {
    Menu.formatted = function (filter,callback) {
      // Your code here
    }
    Menu.remoteMethod('formatted', {
      http: { path: '/formatted', verb: 'get' },
      accepts: [
        { arg: 'filter', type: 'object', 'http': { source: 'query' } }
      ],
      returns: { type: 'object', root: true }
    });
};

在上面的示例中,在代表远程方法接收的参数的accepts 字段中,您需要添加filter 参数。这样就可以把filter的查询参数值作为一个对象来使用了。