Приложение "Учет моих расходов" с нуля до деплоя: JWT + Nest.js + React.js + Effector.js + Mongodb

Поделиться
HTML-код
  • Опубликовано: 15 ноя 2024

Комментарии • 58

  • @skillblog-web
    @skillblog-web  Год назад +3

    Уважаемы подписчики, с 28 ноября хостинг хероку удалил бесплатно созданные бд, мою в том числе. Это значит, что сервер из этого видео, который был размещен на хероку, больше не будет работать😑

    • @nurdanokenov4439
      @nurdanokenov4439 Год назад

      a есть альтернативные варианты?

    • @skillblog-web
      @skillblog-web  Год назад

      @@nurdanokenov4439 Есть, в следующем выпуске я покажу

  • @kitsunaana9783
    @kitsunaana9783 2 года назад +7

    Искренне надеюсь, что комментарии лайки смогут мотивировать тебя продолжать делать подобные проекты. Также надеюсь что качество в 360, это проблемы ютуба, и вскоре видео будет в хорошем качестве.

    • @skillblog-web
      @skillblog-web  2 года назад

      Спасибо большое) Да, Ютуб позже добавит качество выше 360🙂

  • @DezelDanmark
    @DezelDanmark Год назад

    Мужик, это просто то что мне нужно! Только начал смотреть и уже в предкушении! Лайк не глядя!

  • @shittywizzard5727
    @shittywizzard5727 2 года назад +7

    При логине же можно было использовать уже существующий в сервисе метод findOne. Хранить пароли в бд в открытом виде вроде как плохо( Еще не досмотрел до конца, мб автор это как-то фиксит дальше). И наверное было бы здорово при валидации авторизации в ошибке не возвращать какое из полей (имя пользователя/пароль) неверное, а возвращать что-то в стиле "Имя пользователя или пароль не верны". Рефреш токен лучше хранить в куках с флагом httponly чтобы его нельзя было подделать, так же при истечении срока действия токена доступа и обновлении его через рефреш следует генерировать новую пару токенов, в противном случае теряется смысл авторизации по 2 токенам. Пишу это не для автора(не сомневаюсь что он знает), а для новичков.

  • @raftti
    @raftti Год назад

    Очень полезное видео. Спасибо!

  • @Shad0w5m00h
    @Shad0w5m00h 2 года назад

    Сильно, сильно, очень сильно! Постараюсь посмотреть, спасибо!

  • @tazer8635
    @tazer8635 2 года назад

    Крутяк, новый видос, обязательно проделаю весь этот урок.

  • @ОлегПетров-п4у
    @ОлегПетров-п4у 2 года назад

    Спасибо за твой труд! (Fullstack приложение с JWT авторизацией)

  • @art7653
    @art7653 Год назад

    Привет. Крутые видосы, интересные, все подробно и четко. Очень хорошо помогаешь "вкатиться" в технологии.

  • @Amourphys
    @Amourphys 2 года назад

    Спасибо большое, супер полезный контент

  • @dzmitrykubarski1462
    @dzmitrykubarski1462 2 года назад

    Шикарный материал, спасибо

  • @IT-Svyatoslav
    @IT-Svyatoslav 2 года назад

    Благодарю 🙏 тебе за вложенный тобой труд!
    #NestJS #MongoDB #ReactJS #deploy #Heroku #Versel

  • @sergeyshcherbina1648
    @sergeyshcherbina1648 2 года назад

    Красава! Спасибо!

  • @jetsker6388
    @jetsker6388 2 года назад

    Круто! Спасибо

  • @DezelDanmark
    @DezelDanmark Год назад

    Просмотрел 1 час и 34 минуты, я в JS новичок, поэтому некоторые моменты конечно мне непонятны и нужно продумывать твои шаги самому ещё, чтобы сложилась полностью картинка. С какой-то стороны было бы прикольно, если бы ты сделал не 5 часов видео, а например курс, где 5 видосов по 1 часу, было бы легче это воспринимать. В каких-то моментах ты не объясняешь, а проговариваешь что конкретно ты пишешь и мне непонятно, но возможно из-за того, что не силён в этом. Переход от C# к JS не такой лёгкий, но я стараюсь, в любом случае спасибо за видос и решил поделиться своим фидбеком :)

  • @rigoremplasticsinnovates5143
    @rigoremplasticsinnovates5143 2 года назад

    Суперский курс! Спасибо

  • @TheAlexChannelClub
    @TheAlexChannelClub 2 года назад

    Спасибо большое за твой труд

  • @ВладимирГригин-п9о
    @ВладимирГригин-п9о 2 года назад

    Подписался! Буду ждать CRM с Prisma\Graphql+nest & next. Спасибо за труды!

  • @vo_skor
    @vo_skor 2 года назад

    Мужик, ты крут.
    Спасибо за твой труд, все будет✊
    Я чистый фронт и ток начал углубляться в серверную часть и наткнулся на твой канал и уверен много кто еще наткнется и ты станешь топовым прогер-ютубером.

    • @greyufo
      @greyufo Год назад

      глянь @mavn-code

  • @DezelDanmark
    @DezelDanmark 10 месяцев назад

    Вопрос, если MongoDB это NoSQL, то зачем нам использовать схемы?

  • @jamjam3337
    @jamjam3337 Год назад

    спасибо!👏👍💥💥💥

  • @AlexanderBogdanov-dw6cw
    @AlexanderBogdanov-dw6cw Год назад

    Огромное Вам спасибо за видео, подскажите, при попытке залить на vercel сервер, падает ошибка 404, в самой консоли сервера 505. Как ее разрешить? Не смог в Гугле ничего найти и gpt тоже не подсказал...

  • @АнтонАзаров-ж2о
    @АнтонАзаров-ж2о 4 месяца назад

    Я не досмотрел еще до конца, но мне кажется, ты к этому не вернулся) не очень хорошая практика явно указывать ошибку в модуле авторизации) небезопасно) а в целом видео очень годное😊

  • @SerhiiNesterov
    @SerhiiNesterov 2 года назад

    Спасибо

  • @SerhiiNesterov
    @SerhiiNesterov 2 года назад

    Если можно больше effector'a будет супер

  • @harrisonwinston2850
    @harrisonwinston2850 2 года назад

    Почему на 1 час 26 минуте, ты берешь все косты, а не делаешь выборку в базе по условию cost.userId === user._id?

  • @larisash8487
    @larisash8487 2 года назад

    Nest can't resolve dependencies of the MongooseCoreModule (MongooseConnectionName, ?). Please make sure that the argument ModuleRef at index [1] is available in the MongooseCoreModule context. Как решить эту проблему? В гугле не нашла

  • @Elkmany
    @Elkmany 2 года назад

    Подскажите пожалуйста, вот такая ошибка Nest can't resolve dependencies of the MongooseCoreModule (MongooseConnectionName, ?). Please make sure that the argument ModuleRef at index [1] is available in the MongooseCoreModule context. Гуглил, но чет не понял((( Все делал по видео, хеллоу ворлд запускался

    • @skillblog-web
      @skillblog-web  2 года назад

      В описании есть ссылка на чат для вопросов и общения, можешь туда архив скинуть, я гляну что не так)

    • @Elkmany
      @Elkmany 2 года назад

      @@skillblog-web спасибо, загялну в чатик))

    • @larisash8487
      @larisash8487 2 года назад

      Напиши, пожалуйста, сюда решение этой проблемы. Эта ошибка выскакивает после подключения монгуса и дальше видео смотреть бессмысленно

    • @skillblog-web
      @skillblog-web  2 года назад

      В описании к видео есть ссылка на чат для вопросов и общения.

  • @lord8360
    @lord8360 Год назад

    Впервые вижу тех кто записывает такие видосы и использует effector

  • @magbear3205
    @magbear3205 Год назад

    ты учишься или уже работаешь?
    классный канал. подписался с другого аккаунта и посоветовал друзьям))

    • @skillblog-web
      @skillblog-web  Год назад

      Привет. Я уже работаю. Спасибо за просмотр и за рекомендации друзьям👍

    • @magbear3205
      @magbear3205 Год назад

      @@skillblog-web я прошёл кучу курсов на юдеми. могу от верстки до сервера на ноде. начал делать отзывы. Мне присылают такие тестовые задания, что я даюсь диву. Причем часто с жестким тайпскрипт на позицию джуниора и мидла, где написано, что тайпсурипт желателен. Мне даже Нест прислали, когда речь в вакансии шла только про ноду.
      У тебя тоже такое было?

    • @skillblog-web
      @skillblog-web  Год назад +1

      Да, бывало подобное. Вступай в чат для вопросов и общения в описании. Если будет что непонятно, я и участники постараемся помочь)

    • @magbear3205
      @magbear3205 Год назад

      @@skillblog-web я вступил в группу. Г1алар ду тхьо)

  • @oleksiishkulipa1626
    @oleksiishkulipa1626 2 года назад

    спасибо большое за видео, смотрел в основном из-за того что нест джс учу, и решил так же глянуть фронт из-за еффектора(никогда не слышал о нем). Приоткрыл глаза на это, так что большое спасибо ещё раз.
    По еффектору: как по мне очень крутой стейт менеджмент, только к сожалению нету RTK query(редакс тул кит) для кеширвоания запросов на бек, можно конечно свой сервис написать, но это всё будет занимать собственорочуный код, если сравнивать с редакс тул кит, там уже просто документация есть даже, а так прийдется другим разрабам вникать что я тут тогда за собственоручный сервис написал.
    Большой + того что он очень легко подключается(не надо ничего оборачивать) и много фишек типо можно комбинировать сторы с разными параметрами и уже есть какая-то асинхронщина(типо санки или саги в виде Еффектов), но блин, типо РТК квери был бы ещё - вообще топчег был бы
    Но вернемся к коду, заметил скажем так... оптимизацию:
    1. обновлять рефреш токен через функцию handleAxiosError - думаю лучше так не делать, слишком много кода и соотвественно логики, если кто-то прийдет на проект, то сложней понять будет и он думаю не будет знать о том что надо будет так же в неё добавить определенный case для какого-то авторизованого запроса - соответствено будет баг, то лучше такое реализовать через interceptors в axios, который может перехватывать ошибку, и сразу например сетить токен в проперти авторизации при каждом запросе, как источники то: thedutchlab (точка) com/blog/using-axios-interceptors-for-refreshing-your-api-token (точку только добавьте вместо слов, а то замечал что ютуб удаляет такие комменты :( к сожалению, или же вот ролик, ссылка: ютуб точка ком/watch?v=fN25fMQZ2v0 на 1 час 40 минут) - это не реклама канала, а риал человек хорошо и понятно обьясняет
    2. Можно не напариться с тем что спинер включаем или выключаем при запросах в функциях. После того как почитал документацию, увидел такой пример ( share (точка) effector (точка) dev/NBhCiDCN ) который трегерит по педингу нашего Ефекта. Я бы сказал наверное лучше этот вариант использовать, а не через useState
    3. Желательно(вообще сказал бы обязательно так как потом в будущем можно будет самого себя похвалить) указывать типы для axios запросов: например в authClient.ts там где const result = api.post('/auth/login', arg2, arg3), то есть добавляем такoe: - где первый аргумет(IAuthDto) то что мы должны передать в этот запрос, а 2й аругмент(IAuthResDto) - то что получаем в ответе когда обращаемся к data
    Как заключение попрошу пожалуйста заметить:
    Я не в коем случае не говорю что автор не прав или что код плохой или что-то ещё если вдруг так показалось кому-то(каждый пишет как знает, как видит, как говорится: "Я художник - я так вижу"), для меня Автор - большой молодец, спасибо ещё раз)) так как делать ролики для людей которых чего-то не знаю и при этом за бесплатно(конечно надеюсь в будущем у автора будет большая аудитория чего я ему и желаю где донаты добрых людей будут покрывать его труд или монитизация рекламы, или на чем там ещё зарабатывают) - это очень мощно, так что автору большое спасибо. Действительно с этого ролики можно очень много чего вынести
    Пожалуйста не останавливайся, желаю тебе только добра и процветание этого канала с таким мощным контентом

  • @Elkmany
    @Elkmany 2 года назад

    Подписался+

  • @ДенисЯковенко-ц1э

    Так перейдя по ссылке на результат то ничего не работает сайт накрылся

    • @skillblog-web
      @skillblog-web  Год назад +1

      Да, к сожалению, хероку удалил бесплатный хост(

  • @Shad0w5m00h
    @Shad0w5m00h 2 года назад +1

    Почему фронт пилить дольше, чем бэк, ну 😄

  • @andTutin
    @andTutin 2 года назад

    эта помойка, смысле монго, недоступна чтоле из РФ стала ?

    • @skillblog-web
      @skillblog-web  2 года назад

      Ага, теперь только с vpn😬

    • @andTutin
      @andTutin 2 года назад

      @@skillblog-web не пускает и с впн. Ну да ладно

    • @skillblog-web
      @skillblog-web  2 года назад

      @@andTutin я использую 1clickVPN в хроме, попробуй его

    • @andTutin
      @andTutin 2 года назад

      @@skillblog-web раз такое дело может с докером поиграться да скачать контейнер с монгой

    • @skillblog-web
      @skillblog-web  2 года назад

      @@andTutin Можно, но для деплоя все равно нужно будет на сервисе бд создать

  • @denzelwashington4135
    @denzelwashington4135 10 месяцев назад

    были ли у кого такие ошибки - Uri()` must be a string, got "undefined". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string.
    это после первого подключения к бд где то на 16ой минуте

    • @skillblog-web
      @skillblog-web  10 месяцев назад

      Возможно переменная окружения не видна