170 похожих чатов

Хай ребзя! Переодически задаю сюда вопрос. Как вы отсекаете middleware

которая не должна использоваться для определенного роута в Express?

16 ответов

29 просмотров
Anton-Krevedko Автор вопроса

Допустим у нас есть fooRoutes.js В нем дофига эндроинтов router.get(‘/a’) router.post(‘/b’) .... и т.д На каждый из ендпоинтов кладется еще число мидлварий В конечном итоге чтобы дойти до последнего эндпоинта в файле будут задерганы в мидлвари по пути (я про router.use) Так вот как лучше сделать так чтобы они не дергались если они не нужны для этого эндпоинта

ну самое просто решение в лоб это просто в мидлваре проверять req.path/req.originalUrl

Anton-Krevedko Автор вопроса

Во, а есть что-то лучше сейчас?

но вы не ответили на вопрос что за мидвары, нужен не теоретический пример, а конкретно ваш кейс потому что я на практике больше 1 мидлвары на раут не использую - нет надобности у вас может очень много логики вынесено в мидлвары

как вариант просто не вешай её через use, а вешай на каждый роут Либо выдели группу роутов для которых точно нужна это мтдлевара и повесь через use

обычно есть глобальные мидлвары по типу боди-куки парсера потом на уровне роутерa могут быть у меня мидлвары для авторизации и на каждый роут например рейт лимит все

Anton-Krevedko Автор вопроса

Ну допустим у меня есть авторизация У авторизации есть 4 мидлвари: 1. Одна делает 3rd party запрос 2. Вторая картинки сохраняет 3. Третья авторизует 4. А последняя на почту отправляет Ну и плюс какие-то данные замапить, я в мидлвари обычно выношу

почему отправка на почту это в мидлваре а не в бизнес логике?

Anton-Krevedko Автор вопроса

jwt А что Вы выносите в мидлвари?

у вас должна быть тогда 1 мидлвара авторизации, которая верифицирует джвт токен и записывает в контекст запроса декдоированного юзера с правами например

спроси у него ещё он ноги моет ниже колен или нет, чтобы точно вопрос его решить

Хороший вопрос

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта