элементы как Guard, как я понял, официальная документация говорит что эти элементы нужны чтобы предоставлять доступ или ограничивать его, например возвращая булевое значение, проще говоря - авторизация.
Вопрос в чем, а нафига он нужен? Если с этим прекрасно справляется Middleware.
Основное отличие которое афиширует в доке - это то что Guard знает что будет дальше, он знает какой хендлер будет выполняться при положительном результате.
Тогда зачем нужно это знать? Просто интересно ваше мнение
Для того, чтобы логика предоставления доступа была в одном месте, предоставляя для этого удобный интерфейс
Спасибо за мнение
https://youtu.be/RS8x73z4csI?si=KLZVUM_XvSTu1muA
? Там будет мнение уважаемого Тимура по поводу того что Дефендер это оверинденеринг
Что такое дефендер? Там мнение про вред миддлварь. Которое в том числе отвечает на твой вопрос
Сори) я про Guard)) https://docs.nestjs.com/guards
ну я гварды использую только из-за декораторов
Middleware глобальная и исполняется на каждый запрос. Это декоратор который исполняется только на нужный контроллер
Middleware можно сделать не только глобально
Да по сути это все мидлвари с разным порядком срабатывания. Смысл просто в привычном подключении и унифицированном синтаксисе, чтобы не было соплей из мидлварей как в експрессе
А еще мидлвеер не декоратор
Разница в том что гард из под коробки удобно настроен как миддлвара для разграничения доступа, да и все
Бросает 403 ошибку на возвращаемый false, имплементирован определений интерфейс
тебе правда удобнее конфигурировать вот так какие-то отдельные роуты и потом при разработке шариться искать где и какие миддлвары ты накрутил чем поставить гарду на конкретную роуту в конкретном контроллере чтоб она еще и перед глазами постоянно была когда в след раз сюда залезешь?
Скорее всего тебе ответили, но я внесу свои 5 копеек) по сути ты прав, нест очень сильно вдохновлён спрингом и ангуляром и гвард в спринге работает точно так же как в несте за исключением того, что там нет мидлваров как таковых, в ангуляре они тоже защищают роуты, но только на клиенте(переходы на разные странички) по сути это более удобные способ использовать мидлвару
Открой страницу где ты взял этот код и прочти что написано первой строкой Middleware is a function which is called before the route handler
Причем тут то, что мидлварь нельзя накинуть не на все роуты?
При том что мидлварь остаётся глобальной и это замедляет код
А с чего ты взял, что она остаётся глобальной?
https://t.me/nodejs_ru/1144453
Где тут хоть слово про глобальность?
Обсуждают сегодня