Фильтр промежуточного программного обеспечения JS - PullRequest
0 голосов
/ 16 ноября 2018

Мне нужно добавить в мой проект MVC js фильтр промежуточного программного обеспечения, который будет передавать управление контроллеру, который будет выполнять некоторые действия, если условие фильтра ложно, и отображать специальную страницу, если условие истинно (но не дает элемент управленияконтроллер).Это должно быть промежуточное программное обеспечение, которое выполняется до логики контроллера, и оно НЕ ДОЛЖНО БЫТЬ функцией в контроллере.

Здесь у меня есть маршрут, который теперь просто выполняет метод загрузки в контроллере.

if (config.common.zoneName === 'main') {
router.get('/book/:itemid', new 
DownloadController(ResourceRepo).download);
}

Мне нужно добавить туда некоторую логику, например,

if (itemid > 10){
//render some special page
} 
//execute download method on the same controller
}   

В реальной задаче условие очень сложное (например, получение IP-адреса запроса и проверка поля в базе данных с тем же IP-адресом).Таким образом, условие не встроенная функция, а какой-то сложный метод.Как я могу сделать это, используя промежуточное ПО Expressjs?Большое спасибо: 3

1 Ответ

0 голосов
/ 16 ноября 2018

Полагаю, вы хотите сделать что-то вроде этого:

if (config.common.zoneName === 'main') {
  router.get('/book/:itemid', 
    (req, res, next) => {
      if (req.params.itemid > 10){
        //render some special page
      } 
      //execute download method on the same controller
    },
    new DownloadController(ResourceRepo).download);
}
...