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

Всем привет Изучаю Nest.js , возникли вопросы)) В архитектуре nest есть такие

элементы как Guard, как я понял, официальная документация говорит что эти элементы нужны чтобы предоставлять доступ или ограничивать его, например возвращая булевое значение, проще говоря - авторизация.
Вопрос в чем, а нафига он нужен? Если с этим прекрасно справляется Middleware.
Основное отличие которое афиширует в доке - это то что Guard знает что будет дальше, он знает какой хендлер будет выполняться при положительном результате.

Тогда зачем нужно это знать? Просто интересно ваше мнение

23 ответов

24 просмотра

Для того, чтобы логика предоставления доступа была в одном месте, предоставляя для этого удобный интерфейс

https://youtu.be/RS8x73z4csI?si=KLZVUM_XvSTu1muA

Chamion- Автор вопроса
Алексей Попов
https://youtu.be/RS8x73z4csI?si=KLZVUM_XvSTu1muA

? Там будет мнение уважаемого Тимура по поводу того что Дефендер это оверинденеринг

Chamion
? Там будет мнение уважаемого Тимура по поводу тог...

Что такое дефендер? Там мнение про вред миддлварь. Которое в том числе отвечает на твой вопрос

Chamion- Автор вопроса

ну я гварды использую только из-за декораторов

Middleware глобальная и исполняется на каждый запрос. Это декоратор который исполняется только на нужный контроллер

Chamion- Автор вопроса
Sergey 🧻🤲
Middleware глобальная и исполняется на каждый запр...

Middleware можно сделать не только глобально

Chamion
Middleware можно сделать не только глобально

Да по сути это все мидлвари с разным порядком срабатывания. Смысл просто в привычном подключении и унифицированном синтаксисе, чтобы не было соплей из мидлварей как в експрессе

Chamion- Автор вопроса
Sergey 🧻🤲
Нельзя

Ну вот тут в примере не глобально установили, а для определенного роута

Разница в том что гард из под коробки удобно настроен как миддлвара для разграничения доступа, да и все

Бросает 403 ошибку на возвращаемый false, имплементирован определений интерфейс

Chamion
screenshot Ну вот тут в примере не глобально установили, а дл...

тебе правда удобнее конфигурировать вот так какие-то отдельные роуты и потом при разработке шариться искать где и какие миддлвары ты накрутил чем поставить гарду на конкретную роуту в конкретном контроллере чтоб она еще и перед глазами постоянно была когда в след раз сюда залезешь?

Скорее всего тебе ответили, но я внесу свои 5 копеек) по сути ты прав, нест очень сильно вдохновлён спрингом и ангуляром и гвард в спринге работает точно так же как в несте за исключением того, что там нет мидлваров как таковых, в ангуляре они тоже защищают роуты, но только на клиенте(переходы на разные странички) по сути это более удобные способ использовать мидлвару

Chamion
screenshot Ну вот тут в примере не глобально установили, а дл...

Открой страницу где ты взял этот код и прочти что написано первой строкой Middleware is a function which is called before the route handler

Sergey 🧻🤲
Открой страницу где ты взял этот код и прочти что ...

Причем тут то, что мидлварь нельзя накинуть не на все роуты?

..
Причем тут то, что мидлварь нельзя накинуть не на ...

При том что мидлварь остаётся глобальной и это замедляет код

Sergey 🧻🤲
При том что мидлварь остаётся глобальной и это зам...

А с чего ты взял, что она остаётся глобальной?

Sergey 🧻🤲
https://t.me/nodejs_ru/1144453

Где тут хоть слово про глобальность?

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
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...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
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
Карта сайта