Loopback 4 - Как перехватить метод поиска для каждого контроллера или модели - PullRequest
0 голосов
/ 11 июля 2019

Требование заключается в том, что для каждого запроса на получение мне нужно отправить все объекты в этой таблице. Например, Я делаю запрос, чтобы получить все клиенты (возможно, с некоторыми фильтрами) с определенным пределом для целей нумерации страниц, и в ответе я хочу получить результат в виде массива всех клиентских объектов и количества клиентов в БД.

Это означает, что мне нужно не только перехватывать метод поиска для каждого контроллера или модели (везде, где это возможно), но и изменять ответ.

Текущий ответ:

[
  {
    "firstName": "Bhupesh",
    "lastName": "Gupta"
  }
]

Обязательный ответ:

{
  "count": 5,
  "data": [
      {
        "firstName": "Bhupesh",
        "lastName": "Gupta"
      }
    ]
}

1 Ответ

1 голос
/ 11 июля 2019

Вы можете использовать функции перехвата, предлагаемые loopback, проверьте пример, упомянутый ниже,

MyModel.observe('access', async function(ctx) {
  var count = // some logic here;
  ctx.result = {
     data: ctx.result,
     count: count
  };

  next();
});

access в обработчиках операций используется как обратный вызов для каждой GET операции, выполняемой в соответствующем источнике данных.

Для получения дополнительной информации о хуках работы, пожалуйста, проверьте,

https://loopback.io/doc/en/lb2/Operation-hooks.html

https://github.com/strongloop/loopback/issues/624#issuecomment-58549692

...