Переопределить паруса. js Перехват ватерлинии Метод поиска - PullRequest
1 голос
/ 18 июня 2020

У меня есть модель под названием Product. Я хочу, чтобы для этой модели была настраиваемая по всем направлениям фильтрация.

Например: sails.config.field = 2;

Когда я выполняю GET / Product, я хочу, чтобы он по существу выполнял GET / Product? Where = {"field ": 2}

Вышеупомянутое работает для схемы путем добавления политики, но я хочу, чтобы при использовании ватерлинии ORM

GET / Product и Product.find () выполнялись последовательно. вернуть то же самое.

Я могу переопределить модель: Product.find, и она будет работать отлично ... ЕСЛИ бы у меня был способ получить доступ к базовому коду поиска.

Код, который я использую для перехвата чертежа, следующий:

if (!req.query.where) {
    req.query.where = `{"status":{">":0,">=":${sails.config.catalogVersions.status}}}`;
  } else {
    const parsedWhere = JSON.parse(req.query.where);
    parsedWhere.status = {
      '>': 0,
      '>=': sails.config.catalogVersions.status,
    };
    req.query.where = JSON.stringify(parsedWhere);
  }

Я мог бы очень легко применить это к перехватчику Model.find.

Есть ли способ, который однажды поплывет загружен, я могу получить доступ к методу поиска root на модели, даже если он был перезаписан во время загрузки?

Ответы [ 2 ]

0 голосов
/ 25 июня 2020

В итоге я использовал ловушку hook: orm: loaded для запуска некоторого кода, который обезьяны исправлял все модели с помощью defaultScope, который хранился в каждой из моих моделей. Он работает хорошо, так как я могу легко изменить критерии по умолчанию для всех моделей и добиться согласованного поведения по чертежу и ватерлинии.

См. Код: Есть ли способ переопределить паруса. js ватерлиния конечная точка с настраиваемым контроллером, но сохранить встроенную разбивку на страницы и фильтрацию?

0 голосов
/ 19 июня 2020

Может быть, вы могли бы подумать о чем-то вроде этого:

https://github.com/muhammadghazali/sails-hook-pagination

Это крючок и, возможно, работает для вашего предполагаемого использования.

...