Я пытаюсь реализовать промежуточное ПО в ExpressJS. Я сталкиваюсь с проблемой, промежуточное программное обеспечение работает только тогда, когда я добавляю его методом app.use (mymiddleware). Но я хочу достичь, чтобы отделить его от конкретных маршрутов.
это мой PRroute:
export = (app: any) => {
const endpoint = process.env.API_BASE + "prs";
app.post(endpoint, PR.create);
app.delete(endpoint + "/:id", PR.delete);
app.get(endpoint + "/:id", PR.getOne);
app.get(endpoint, PR.getAll);
app.put(endpoint + "/:id", PR.update);
};
И моя цель - работать так:
export = (app: any) => {
app.use(User.IsAdmin);
const endpoint = process.env.API_BASE + "prs";
app.post(endpoint, User.IsAdmin, PR.create);
app.delete(endpoint + "/:id", PR.delete);
app.get(endpoint + "/:id", PR.getOne);
app.get(endpoint, PR.getAll);
app.put(endpoint + "/:id", PR.update);
};
Но это не работает. потому что мой экспресс-файл выглядит так:
const routesPR = require("../routes/PRroute")(app);
Это работа, если я добавляю в метод app.use (User.IsAdmin), но его метод вызывается перед каждым методом GET / POST.
Есть ли какое-либо решение для достижения этой цели без разделения на разные файлы общих и административных маршрутов?
Спасибо за ваш ответ.