Полный Full Stack курс ReactJS + NodeJS для начинающих за 4 часа! (MongoDB, Express, React, NodeJS)

Поділитися
Вставка
  • Опубліковано 19 січ 2025

КОМЕНТАРІ • 1 тис.

  • @AurumCode-17
    @AurumCode-17 2 роки тому +743

    Пж сделайте полный курс по node и experss, народ поддержите лайком !!!

    • @maxim.saharov
      @maxim.saharov 2 роки тому +16

      а зачем он тебе ? какая задача ? автор придумал идею и и сделал этот курс, что в ноде рассказывать ? как файлы перемещать) Предложи что идею что именно ты хочешь что бы сделал автор, что бы показал что именно на ноде?
      И тем более после этого курса ты сможеш я думаю и сам погуглить что нужно или документацию почитать и курс по ноде есть у Владилена Минина как вариант.

    • @AurumCode-17
      @AurumCode-17 2 роки тому +4

      @@maxim.saharov я имел ввиду что было бы хорошо если он сделал курс по node для джунов где он будет реализовать интернет магазин

    • @maxim.saharov
      @maxim.saharov 2 роки тому +12

      @@AurumCode-17 думаю такое он должен только платно вылаживать на юдеми, потому что это мега колоссальный труд!

    • @AurumCode-17
      @AurumCode-17 2 роки тому

      @@maxim.saharov да ты прав !

    • @AurumCode-17
      @AurumCode-17 2 роки тому +5

      @@maxim.saharov но это может помочь с ростом аудитории так как по node таких курсов нет , в ру сегменте !

  • @dzarmotow
    @dzarmotow Рік тому +42

    1:42:22 - вернулась ошибка при отправке, это ошибка возникла потому что, начиная с версии Mongoose 5.0, метод Model.findOneAndUpdate() больше не принимает колбэк в качестве последнего аргумента. Вместо этого, он возвращает объект типа Query или Promise.
    Чтобы исправить эту ошибку, вам нужно изменить код таким образом, чтобы он использовал либо async/await, либо .then() и .catch() для управления асинхронными операциями.
    Как выглядил:
    PostModel.findOneAndUpdate(
    {
    _id: postId
    },
    {
    $inc: { viewsCount: 1 },
    },
    {
    returnDocument: 'after'
    },
    (err, doc) => {
    if(err) {
    return res.status(500).json({
    message: "Не удалось вернуть статью"
    })
    }
    if(!doc) {
    return res.status(404).json({
    message: "Статья не найдена"
    })
    }
    res.json(doc)
    )
    Как должен выглядеть:
    PostModel.findOneAndUpdate(
    { _id: postId } ,{ $inc: { viewsCount: 1 } },{ returnDocument: "After" } )
    .then(doc => res.json(doc))
    .catch(err => res.status(500).json({ message: "Статья не найдена" }))

    • @_alex.barrel
      @_alex.barrel Рік тому +1

      спасибо, выручили!

    • @AmericanDragon134
      @AmericanDragon134 Рік тому

      надо понизить версию mongoose на 6.10.0

    • @максимермантович
      @максимермантович 8 місяців тому

      спасибо большое!!Добрый вы человек)) и очень многим думаю помогли

    • @dxdzdy2757
      @dxdzdy2757 7 місяців тому

      Огромная благодарность!

    • @logan7280
      @logan7280 5 місяців тому +2

      привет, спасибо за помощь
      хотел бы добавить, что в таком случае при обращение по несуществующему id вы получите null, т.к. findOneAndUpdate возвращает null вместо ошибки. Чтобы возвращать ошибку можно сделать так (уверен есть способы лучше):
      ArticleModel.findOneAndUpdate(
      { _id: articleId, },
      { $inc: { viewsCount: 1 } },
      { returnDocument: "after", }
      )
      .then(doc => {
      if (!doc) {
      throw Error;
      }
      res.json(doc);
      })
      .catch(err => res.status(404).json({ message: 'Article not found'}));

  • @dw_tv3992
    @dw_tv3992 2 роки тому +36

    Спасибо за шикарный курс. У кого сервак не конектится к облаку монгодб и в терминале срабатывает кэтч - перейдите на страницу вашего облака и найдите слева кнопку Network Access > разрешите доступ по любому IP (если у вас динамический ) либо можете указать конкретный (если у вас статический) и в обоих случаях вы используете только браузерный впн

    • @АлександрЕрмолов-п2ь
      @АлександрЕрмолов-п2ь 2 роки тому

      все равно не помогает... везде встали нули, но не работает )))

    • @dw_tv3992
      @dw_tv3992 2 роки тому +2

      @@АлександрЕрмолов-п2ь везде нули это и означает, что любой ip разрешен для подключения.
      проверьте строчку в серверном файле: mongoose.connect('.......') возможно у вас есть пароль, но в строке он не указан, либо его нет и в сроке это также некорректно отображено (в общем убедитесь что отсутствуют ошибки)

    • @olegger7436
      @olegger7436 2 роки тому

      спасибо, помогло)

    • @BLVCK7
      @BLVCK7 2 роки тому

      Мне помогло изменение версии при коннекте с Node 4.1 or later на 2.2.12 or later

    • @MaximLisyanskiy
      @MaximLisyanskiy 2 роки тому +1

      Огромное спасибо. Помогло

  • @enigma9445
    @enigma9445 2 роки тому +14

    Черт, как же ты хорошо объясняешь, столько инфы новой и все идеально понял, спасибо друг 🙌

  • @HelloWorld-bp1np
    @HelloWorld-bp1np Рік тому +160

    1:37:58 нормально ты автор, конечно, потролил. То-есть любой кто сделает get запрос может получить всю инфу из БД про всех авторов статей, включая email, хеши паролей, дату регистрации, короче тупо всю инфу. Понятно что курс для новичков, но это через чур. Как по твоему новичок найдет инфу как пофиксить это? Короче, немного посидев, нашел такое решение как передать туда только то что нужно (P.S. Не пойму почему так трудно было написать одну строчку автору) .populate({ path: "user", select: ["name", "avatar"] })

    • @serjmarkelov9915
      @serjmarkelov9915 Рік тому +4

      Спасибо!
      Поднимите этот коммент в топ, хоть курс и для новичков, но это наоборот важно подчеркнуть!

    • @Kleo_Wyatt
      @Kleo_Wyatt Рік тому +3

      Вряд ли это троллинг. Авторы тоже могут ошибаться или не заметить ошибки

    • @ayhanak8913
      @ayhanak8913 Рік тому

      почему то у меня тоже не работал Editable={userData?.id === obj.user._id}
      TypeError: Cannot read properties of null (reading '_id')

    • @ayhanak8913
      @ayhanak8913 Рік тому

      ​@@serjmarkelov9915 я тоже сагласен

    • @ayhanak8913
      @ayhanak8913 Рік тому

      А у меня почемуто не работал((

  • @polkovnik84
    @polkovnik84 Рік тому +13

    Если у кого-то была ошибка, при получении поста по ID, тогда вот исправления:
    let doc = await PostModel.findOneAndUpdate(
    { _id: postId },
    { $inc: { viewsCount: 1 } }
    );
    Потому как с версии mongodb v.5++ убрали возможность использовать callback функции в данном случае.

    • @umkament
      @umkament Рік тому +4

      да, только я еще оставила третий параметр {returnDocument: 'after'}, иначе при первом получении документа счетчик просмотров так и будет оставаться нулевым, а нам нужно, чтобы он сразу в единичку превратился

    • @evans4068
      @evans4068 Рік тому

      красавчики, парни. Выручили@@umkament

  • @ГерманПлетнёв-ь8л
    @ГерманПлетнёв-ь8л 2 роки тому +66

    Тебе огромное уважение и респект за твои труды💗 Продолжай в том же духе и повышай планку )

  • @divergent_i
    @divergent_i 2 роки тому +93

    Чувствую что это будет мегаохренительный курс. Спасибо за всё!

    • @darkside2436
      @darkside2436 2 роки тому +4

      И твои чувства тебя не подводят 😎

    • @xeedreen2120
      @xeedreen2120 2 роки тому

      Брат, и мои тоже наверно

    • @ДанилДмитриев-я5м
      @ДанилДмитриев-я5м 2 роки тому

      как успехи

    • @alexandrkruglyak
      @alexandrkruglyak Рік тому +1

      Кто хочет научиться писать микросервисы nodejs, docker - заходим в гости!🤝

  • @uzbelyorestate
    @uzbelyorestate 2 роки тому +13

    единственный канал который я нашел так четко и ясно объясняет автор ! спасибо за тяжёлый труд! я подписался сразу же 😎

  • @irohVlad
    @irohVlad 2 роки тому +15

    Это очень круто! То что нужно тем, кто посмотрел про теорию, но не знает как сделать что-то рабочее. Все очень понятно. Отдельное спасибо, что показал от начала и до деплоя, мало кто это делает, очень ценный курс.

  • @ArtyomManokhin
    @ArtyomManokhin Рік тому +1

    Огонь. Решил подучить бэкенд дополнением к фронту, чтобы можно было создавать полноценные сайты и твоё видео чётко в тему. Спасибо большое

  • @ВиталийБрынза-н9ъ
    @ВиталийБрынза-н9ъ 2 роки тому +6

    Пожалуй самый лучший курс из всех по этой теме. Всё очень доступно. Нет к чему придраться. Большое спасибо. Буду следить за новыми выпусками.

  • @aton_goldenstern
    @aton_goldenstern 5 місяців тому +1

    спасибо за проделанную работу!
    у тебя приятный голос и несмотря на монотонность, интересно слушать, курс не выглядит душным. Нравится, что не торопишься, как некоторые авторы обучающего контента(в попытках впихнуть невпихуемое, е-мае:D), благодаря этому возможно досмотреть 4,5 ч.

    • @Паўлік
      @Паўлік 4 місяці тому

      ты досмотрел видео все корректно работает, переживаю актуально ли на 2024 и не будет ли ошибок?

  • @duce201
    @duce201 2 роки тому +28

    Спасибо большое за твой труд!!! Ты лучший!!! Офигенный курс и стэк!!!

  • @tomzak177
    @tomzak177 Рік тому +7

    Блин, я начал делать это ради того чтобы научится верстать, в итоге дохожу я до второго часа гайда и автор такой
    А Я УЖЕ ВСЕ СВЕРСТАЛ
    ВЕРСТАТЬ НЕ ПРИДЕТСЯ
    Спасибо папаша 😂

  • @andreo5027
    @andreo5027 9 місяців тому +4

    досмотрел до конца нужно хотя бы ради каждого "да ёмаё".
    хороший курс, хоть и не идеальный. рекомендую.

  • @murrmax1466
    @murrmax1466 Рік тому +2

    Братан, хорош! Контент в кайф! Можно еще? Вообще красавчик!!

  • @serjmarkelov9915
    @serjmarkelov9915 Рік тому +8

    Обычно избегаю оставлять комментарии, чтобы не отвлекаться от прогресса, но Денис, спасибо тебе огромное, что так подробно объясняешь.
    Я думаю, для многих из СНГ, IT - это хорошая возможность подняться и изменить жизнь к лучшему, так что, как говорится: you are doing God's work

  • @ronallik
    @ronallik 2 роки тому +1

    Спасибо за курс. Сначала с ужасом смотрел на домашнюю работу, но затем шаг за шагом и все получилось. Главное практика и обучение на собственных ошибках. Еще раз спасибо!! Ждем новых курсов!! Удачи!!

  • @Goboz1
    @Goboz1 Рік тому +3

    очень приятно и легко смотрятся ваши видео, спасибо

  • @SenkeSem
    @SenkeSem Рік тому +3

    Делал всё вместе с тобой. Правда это заняло часов 10 реального времени, а не 4, но всё шикарно получилось. Спасибо тебе большое, что делишься своим опытом с молодой гвардией пруграмистав. Удачи.

  • @alexanderkomanov4151
    @alexanderkomanov4151 2 роки тому +1

    Нет слов передать благодарности! Я делаю похожий проект но с firestore - вот теперь буду делать полный fullstack!

  • @hermanherman7045
    @hermanherman7045 2 роки тому +33

    Ещё не закончил React Pizza 2.0, но заранее предвкушаю процесс прохождения данного курса, потому что знаю, что контент будет топовый - максимально понятный и информативный!
    Спасибо🙏
    #MongoDB #Express #React #NodeJS #MERN

  • @Evgeny..
    @Evgeny.. 2 роки тому +1

    Предвкушаю, что будет что-то интересное)) лайк уже поставил!))

  • @unity_12
    @unity_12 2 роки тому +5

    Долго я искал такое видео! Спасибо за ваш труд! Классно 👍

  • @ГордейИстомин-у8ф
    @ГордейИстомин-у8ф 2 роки тому +6

    Это лучший данного рода курс на ютубе, правда.
    Спасибо за Ваши труды! 🙂

  • @alex-kobrin
    @alex-kobrin 2 роки тому

    Снова вернулся на твой канал , мне предстаит много наверстать, Спасибо за твою работу !

  • @НиколайКомаров-ъ4ъ
    @НиколайКомаров-ъ4ъ 2 роки тому +21

    Я очень долгое время пытался понять и начать писать код на raect, но всегда в голове была какая то каша из большого количества информации. Я полюбил твои курсы за то, что у тебя каждый курс сделан очень подробно, структурировано и понятно. С нетерпением жду новые курсы! Большое тебе спасибо за твой труд и удачи во всем!

  • @antonvasyukov763
    @antonvasyukov763 2 роки тому +1

    Супер видос! Так держать, более понятного разъяснения всего и вся нигде не встречал.
    Очень хотелось бы в будущем видео по созданию CRM системы простенькой

  • @vladimirvalko1108
    @vladimirvalko1108 2 роки тому +4

    Спасибо за контент!
    Как всегда топ 💪🏻

  • @OlgaLebedeva-o3q
    @OlgaLebedeva-o3q Рік тому +1

    Дэннис, ты просто лучший! Когда смотрю твои видео, чувствую магию! Ни у кого так понятно не объяснено, +спасибо за реакт-пиццу обновлённый, там просто идеальнейшее объяснение. Сейчас делаю тестовые задания на работу, опираясь на твои уроки! Спасибо за твой труд!

    • @КостяКипр
      @КостяКипр Рік тому

      Привет!У тебя MongoDB без проблем подключилось? У меня выбивает ошибку "Could not connect to any servers in your MongoDB Atlas cluster."

    • @OlgaLebedeva-o3q
      @OlgaLebedeva-o3q Рік тому

      @@КостяКипр без проблем подключилось. попробуй сделать это MongoDB Atlas -> NetworkAccess -> Edit -> Allow Any или почитай еще что-то на stackoverflow

  • @vladk3111
    @vladk3111 2 роки тому +7

    Автор, спасибо за видео !!! Круто !
    47:15 - если быть совсем точным, бкрипт - это алгоритм формирования пароля, а соль - это не алгоритм, это как и пароль обычная строка, набор символов (буквы, цифры, знаки), которые добавляются к паролю для того, чтоб хранящиеся в базе 10 одинаковых паролей не имели одинаковый хэш.

    • @woodlandfantomas2044
      @woodlandfantomas2044 2 роки тому

      Соль-в прямом смысле добавляет незначашие символы, подмешиваем соль.

    • @maxburner8338
      @maxburner8338 2 роки тому +1

      Но есть алгоритм добавляющий соль,

    • @woodlandfantomas2044
      @woodlandfantomas2044 2 роки тому

      @@maxburner8338 Да.

    • @drbkso2
      @drbkso2 2 роки тому

      А почему 47:50 при const salt = await bcrypt.genSalt(10) await-выдает ошибку

    • @VoropaevTS
      @VoropaevTS Місяць тому

      @@drbkso2 Решил?

  • @yanagaeify
    @yanagaeify Рік тому +1

    Зашел чекнуть как на Heroku и vercel заливка происходит, а тут походу нужно весь видос посмотреть, ведь контент топчик!

  • @lexandrio
    @lexandrio 2 роки тому +5

    Такой контент и за бесплатно, спасибо большое, много полезного можно узнать) 🔥

  • @АлександрИванькович-т9ф

    Спасибо большое за прекрасный курс!!! Осталось реализовать дополнительный функционал из домашнего задания

  • @ВладиславКорчагин-н2п

    Спасибо тебе за твои курсы!) Твой вклад в развитие русскоязычного айти сложно переоценить

  • @jsilverhead
    @jsilverhead 2 роки тому +1

    По-моему самый внятный и полезный курс по node
    eact что я видел! Keep it up!

  • @batm1x
    @batm1x 2 роки тому +6

    Шикарный курс, большое спасибо )

  • @shokhrookhr3850
    @shokhrookhr3850 2 роки тому +2

    Дэн ты нас балуешь)) Спасибо тебе большое!

  • @7yon482
    @7yon482 2 роки тому +35

    Думаю стоит уточнить, что есть довольно классная альтернатива Insomnia под названием Postman :)

    • @krecer2024
      @krecer2024 2 роки тому +16

      А есть еще лучше подход, относительно недавно я перешел с postman на thunder client это расширение для vscode, очень легковесное и имеет все необходимое!

    • @ЭкзоМомент
      @ЭкзоМомент 2 роки тому +1

      @@krecer2024 Благодарю за инфу) Рил годная вещь)

    • @alex-kobrin
      @alex-kobrin 2 роки тому +5

      Я тоже взял альтернативу Insomnia , ecть отличный модуль в VS code как Thunder Client

    • @itmodern2386
      @itmodern2386 2 роки тому

      Мне как-то с insomnia удобнее)

    • @aleksandrholoven2412
      @aleksandrholoven2412 2 роки тому

      @@krecer2024 сенкс, удобный экстеншн

  • @RainbowJet1
    @RainbowJet1 Рік тому

    Шикарный курс, большое спасибо, познакомила с бэкендом! Удивительно было что написание бэка заняло меньше времени чем фронт, полагаю это благодаря простоте работы с express

    • @exe611
      @exe611 Рік тому

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

    • @exe611
      @exe611 Рік тому

      я разные впн использовал, но толку 0. Все никак не могу зайти и использовать его

    • @RainbowJet1
      @RainbowJet1 Рік тому

      @@exe611 у меня оплаченный openVpn от компании

  • @СтасРоманов-в4ч
    @СтасРоманов-в4ч 2 роки тому +18

    по поводу cloud.mongodb - для тех у кого динамичный ip и/или сменяются подсети, то будет нежданчик ввиду ошибки подключения к базе данных, решается это дело в разделе Security -> Quickstart, нужно добавить текущий ip или всю подсеть

    • @АлександрМорозов-р1х
      @АлександрМорозов-р1х 2 роки тому

      Нету там Security > Quickstart. Я рот топтал эту mongodb, два дня шатал их базу данных и она всё падала с ошибкой. Четыре раза удалял и создавал новый проект и новую бд - ни фига. Поставил в разрешенных IP все нули и свой ипшник- хрена лысого, не работает. Ещё и под впн 100 раз капчу заставили заполнять со светофорами и велосипедами. А фишка в том, что там обязательно нужно поставить юзернейм и пароль. Причем пароль не абы какой, я поставил 12345. В их ошибке об этом ни слова . И только тогда это дерьмо заработало

    • @Aurum-Boss
      @Aurum-Boss 2 роки тому

      Добавить текущий ip адрес не получается

    • @Aurum-Boss
      @Aurum-Boss 2 роки тому

      Как добавить всю подсеть подскажите пожалуйста.

    • @СтасРоманов-в4ч
      @СтасРоманов-в4ч 2 роки тому

      @@Aurum-Bossк сожалению, ютуб удаляет ссылки со скриншотами, там есть инпут (IP Address), вставляешь в него свой ip адрес, правее от него, станет активной кнопка Add Entry, нажимаешь и ip добавится к текущему списку ip адресов

    • @СтасРоманов-в4ч
      @СтасРоманов-в4ч 2 роки тому

      @@Aurum-Boss с подсетью та же история, идентично как и с ip адресом, вставляешь весь диапазон и добавляешь

  • @antonzorin5071
    @antonzorin5071 Рік тому +1

    Арчаков - Невский от мира it. "Утак уот"! (с) 😂
    А если серьёзно, то спасибо за ролик! Это просто бомба! =)

  • @mishagarkach
    @mishagarkach 2 роки тому +2

    Наконец-то добрался до бекенда. MVC, JWT, CRUD - теперь эти термины уже не кажутся чем-то понятным только из документаций :) И фронтенд, когда есть знание бекенда становится еще более понятен. Крутой курс.

  • @denisunderonov
    @denisunderonov 8 місяців тому

    Всё очень понятно, спасибо, буду продолжать дальнейшее развитие в MERN

  • @SuperKiberG
    @SuperKiberG 2 роки тому +2

    Товарищи, кто столкнулся с проблемой при подключении Mongo DB Compass, тобишь , проблема заключается в том что при создании аккаунта на сайте Mongo мы заходим с VPN и сайт вносит наш IP в белый лист который используется через VPN, при подключении к Compass идет авторизация через основной IP , именно поэтому возникает проблема, чтобы её решить на сайте потребуется войти в Network Access и указать IP адрес через который будет происходить авторизация через приложение , единственная проблема будет у людей с динамическим IP в том что его каждый раз понадобится менять, по крайней мере мне и паре человек это помогло.

    • @triumphant5912
      @triumphant5912 2 роки тому

      у меня такая проблема была, я короче с выключенным впн определил свой IP, скопировал и в ручную на сайте MongoDB добавил свой вместо того что там было, как я понял там он не твой ip втавляет. Слева раздел Network access там поменяй

    • @SuperKiberG
      @SuperKiberG 2 роки тому

      @@triumphant5912 я как раз о решении этой проблемы и написал)

    • @triumphant5912
      @triumphant5912 2 роки тому

      @@SuperKiberG Просто хотел показать, что я умный))

    • @ДмитрийКукушкин-т5и
      @ДмитрийКукушкин-т5и 2 роки тому

      помогло! не смотря на то, что я из другой страны и не использую VPN, тоже не работало

  • @aleksandrbarabash2221
    @aleksandrbarabash2221 2 роки тому

    Спасибо, пожалуй самый лучший курс из всех по этой теме.
    Единственное, что отталкивает то, что Вы систематически импорты вписываете вручную.

  • @nijy001
    @nijy001 2 роки тому +3

    Это макимально крутое видео) Спасибо!

  • @Мария-ц8ъ2е
    @Мария-ц8ъ2е Рік тому +2

    спасибо за курс!!! MongoDB, Express, React, NodeJS

    • @killu4375
      @killu4375 Рік тому

      Можешь показать свой код в postController на remove?

    • @Мария-ц8ъ2е
      @Мария-ц8ъ2е Рік тому

      @@killu4375 выглядит не очень, но работает

  • @alexmoney4641
    @alexmoney4641 Рік тому +7

    У кого возникла ошибка DB error MongooseServerSelectionError: Could not connect to any servers in your MongoDB Atlas cluster. One common reason is that you're trying to access the database from an IP that isn't whitelisted, Я смог решить проблему подключения к серверу на MongoDB, выполнив это изменение. Зашёл опять на сайт MongoDB и поменял настройки.
    Путь к настройкам: MongoDB Atlas -> NetworkAccess -> Edit -> Allowed Access from Anywhere

    • @АлександрВидин-с6я
      @АлександрВидин-с6я Рік тому

      Можно было просто свой ip локального компьютера, и ip облачного сервера добавить.

    • @fsvasi
      @fsvasi Рік тому +1

      Спасибо, помог с ошибкой

    • @maga_frank
      @maga_frank Рік тому +1

      спасибо помог

    • @SenkeSem
      @SenkeSem Рік тому

      Большое спасибо за помощь с решением. :)

    • @sernowodsk5963
      @sernowodsk5963 11 місяців тому

      @@АлександрВидин-с6я если свой указать то каждый день у меня он обновляется и каждый день надо указывать свой айди новый, я новичок поэтому этот курс у меня растянулся на пару дней

  • @1terbik1
    @1terbik1 Рік тому +1

    Лучший, спасибо за туториал по подключению к базе данных

  • @wilkinsan4315
    @wilkinsan4315 2 роки тому +11

    Привет! Я почти уже почти попал в iT (разработку), но блин жизненные планы не позволили сделать мечту. Именно твои уроки просты в восприятии и по ним я похоже буду учится чтобы всё таки сделать мечту реальностью.

    • @alexcerebrum5655
      @alexcerebrum5655 2 роки тому

      блин заебись мечта гонять гонять | и 0 по эфиру)) это не мечта, а так, средство к существованию((

  • @apexnuts9785
    @apexnuts9785 2 роки тому +2

    Большое спасибо! Подчеркнул для себя пару фишек!

  • @АлександрВидин-с6я

    Если кому-то интересно, то потратив примерно пару часов, я узнал как эффективнее и быстрее всего убрать passwordHash. Как оказалось не надо итерироваться по массиву, или иных фиговых способов. Надо вторым аргументом в populate просто заминусовать это поле: .populate('user', '-passwordHash')

    • @Александр-к3с2х
      @Александр-к3с2х Рік тому +1

      Или туда же передать массив с нужными полями ['fullName', 'avatarUrl'] чтобы не плодить ненужные поля в ответе

    • @Mike37373
      @Mike37373 Рік тому

      зачем убирать

    • @АлександрВидин-с6я
      @АлександрВидин-с6я Рік тому

      Бро, уже не помню) @@Mike37373

    • @umkament
      @umkament Рік тому +1

      отлично, спасибо

    • @Mike37373
      @Mike37373 Рік тому

      зачем убирать@@umkament

  • @aibekzhebegen
    @aibekzhebegen 8 місяців тому

    Мега полезное видео, наконец то смог подружить фронт и бэк)))

  • @ProstoZurab
    @ProstoZurab Рік тому +18

    у кого ошибка на моменте с getonebyid(no longer support callback) используйте async/await
    вот пример
    const doc = await PostModel.findByIdAndUpdate(
    { _id: postId }, { $inc: { viewsCount: 1 } }, { returnDocument: 'after' },
    )

    if (!doc) {
    return res.status(404).json({
    message: 'не удалось найти статью'
    })

    • @aleksandrstarkov8427
      @aleksandrstarkov8427 Рік тому +1

      да, на stack overflow тоже так советут, спасибо, бро

    • @AmericanDragon134
      @AmericanDragon134 Рік тому +1

      ya prosta skachat versiyu mongoose@6,10,0

    • @sexy_cat_1
      @sexy_cat_1 Рік тому +5

      можно еще промисом:
      PostModel.findOneAndUpdate(
      {
      _id: postId,
      },
      {
      $inc: { viewsCount: 1 },
      },
      {
      returnDocument: "after",
      }
      ).then((doc, err) => {
      if (err) {
      console.log(err);
      return res.status(500).json({
      message: "Can't get article.",
      });
      }
      if (!doc) {
      return res.status(404).json({
      message: "Article not found.",
      });
      }
      res.json(doc);
      });

    • @amirlanx
      @amirlanx 11 місяців тому

      тоже так пытался но не выходит 500 ошибку получить, поэтому ее обернул в .catch после .then

  • @daruanikko
    @daruanikko Рік тому +3

    2:17:22 Гениальное объяснение

  • @Crouch96wtf
    @Crouch96wtf 2 роки тому

    то огонь как круто что ты такое сделал без вообще каких либо проблем backend пушка

  • @viacheslauabaimov3880
    @viacheslauabaimov3880 2 роки тому +9

    TypeScript + Express было бы супер! Спасибо за работу

  • @damirospanbek4339
    @damirospanbek4339 Рік тому

    Респект таким людям которые вкладывают душу в свои видео

  • @ДмитрийГусаров-к5о
    @ДмитрийГусаров-к5о 2 роки тому +1

    реально крутой ролик получился, видно что заморочился, респект

  • @risel1241
    @risel1241 2 роки тому +10

    Курс бомба, единственное что, в описании нет исходника фронта без прикрученной логики, а только с версткой )

    • @ArchakovBlog
      @ArchakovBlog  2 роки тому +15

      пофиксил. теперь в master только вёрстка, в finished финальная версия

    • @almira4833
      @almira4833 Рік тому

      @@ArchakovBlog Здравствуйте, где это можно найти?

  • @moornnorr
    @moornnorr 5 місяців тому +1

    Собрал проект + прикрутил коменты за 20 часов где то. Спасибо за отличное видео и новые полезные знания.

  • @jenek051
    @jenek051 2 роки тому +6

    Крутое видеоя спасибо, очень информативно 🤘 #mongoDB, #express, #nodeJS,#frontend, #backend,#react

  • @alik64
    @alik64 2 роки тому +1

    Начинаю курс , let's go 🚀

  • @andreybagulnikov5404
    @andreybagulnikov5404 2 роки тому +9

    Спасибо за видео. Хотелось бы прояснить момент с валидацией, в первой части видео мы делаем валидацию на бэке, но не возвращаем ошибки на фронт для их отображения, вместо этого мы дополнительно делаем валидацию на фронте, в реальных проектах используешь такой же подход и на сколько он правильный?

    • @Dovmial
      @Dovmial 2 роки тому +1

      1. валидации могут отличаться. Более простые проверки на фронте, посложнее - на сервере.
      2. защита от дурака. кто-то может захотеть прикрутить к твоему бэку фронт, в котором не сделает валидацию.
      3. сервер не должен зависеть от представления.

  • @valerygusso1053
    @valerygusso1053 2 роки тому

    Подача - моё почтение! Лучший в РУ-сегменте. Перешёл сюда сразу после реакт-пиццы

  • @СергейА-у6э
    @СергейА-у6э 5 місяців тому

    просмотрел до 5 минуты не удержался поставил лайк бомбим дальше

  • @hpcforum
    @hpcforum 2 роки тому +4

    То чувство, когда досмотрел 4-часовой курс и все проделывал вместе с автором. Спасибище огромное! 2 вопроса к тебе. Работал ли с php и правда ли хочешь бросить разработку? Частично слушал стрим, где ты на это намекаешь, но в то же время увидел план по трудоустройству в новую компанию в твоём блоге. Спасибо.

  • @ДмитрийХовалкин-ю3в

    Спасибо за обучение, очень помогает новичкам.

  • @mex5341
    @mex5341 2 роки тому +7

    начиная с фронтенда курс испортился . Почему нельзя было сделать все по порядку с версткой , созданием компонентов и т.д ? Вышло бы длиннее, но понятнее

    • @linarus6090
      @linarus6090 2 роки тому +4

      согласен, для новичков понятнее, когда с нуля набираешь. А так на фронте полная хрень началась

    • @aleksprimetv
      @aleksprimetv 2 роки тому +2

      если ты новичок, то тебе рано вообще на фулстак зарится закатай губу и иди учи основы.

    • @mex5341
      @mex5341 2 роки тому

      @@aleksprimetv лол)

    • @yuramarinenkov8697
      @yuramarinenkov8697 2 роки тому

      @@aleksprimetv согласен

  • @jscripts2697
    @jscripts2697 2 роки тому

    Неожиданно, курс появился, Хотел бы и я записать в таком качестве курс. Спасибо за труд!

  • @wintriplains4532
    @wintriplains4532 7 місяців тому +3

    Тип с именем Ян столкнулся с ошибкой: имя долдно содержать минимум 3 символа

  • @Hacking-NASSA-with-HTML
    @Hacking-NASSA-with-HTML 2 роки тому +2

    Жаль что Хероку сдулся 🤷
    Можно было бы попробовать 👍
    В любом случае - автору видео - пожелания Добра и Благополучия!
    Очень интересно смотреть 👍

  • @daniil7243
    @daniil7243 2 роки тому +3

    Есть в планах курс по next js?

  • @darkside2436
    @darkside2436 2 роки тому +1

    Спасибо за твой тяжкий труд!

  • @HeliodoroSampaio
    @HeliodoroSampaio 5 місяців тому +48

    А какие методы HTTP лучше использовать для аутентификации с помощью JSON Web Token? я сам долго выбирал курсы по IT, рассматривал разные компании, но в итоге остановился на Skypro, так как у них были лучшие отзывы и структурированные материалы)

    • @umudumu
      @umudumu 5 місяців тому +1

      Уважаемый Skypro, не надоел ещё такой дешёвый пиар с накрученными лайками под каждым роликом?

  • @JavaScriptcher
    @JavaScriptcher 2 роки тому +2

    Новая годнота подьехала!!!

  • @sidby966
    @sidby966 2 роки тому +3

    отличный курс. Но после деплоя на хероку и переходу по ссылке с запросом posts ошибка: Application error. Диплой на vercel естественно так же с ошибкой, не прогружает посты и постоянно выдает при запросе в нетворке: CORS error. Кто-то сталкивался с таким, пытаюсь сам вылечить , пока без результатно.

    • @merunus8556
      @merunus8556 2 роки тому

      Та же проблема, если найдёте решение сообщите!

    • @merunus8556
      @merunus8556 2 роки тому

      Решил проблему, автор не уточнил, что нужно добавить в .gitignore node modules, при деплое на хероку они ломают все, не благодари

    • @sidby966
      @sidby966 2 роки тому

      @@merunus8556 спасибо, полностью заново перезаливал бекэнд на гитхаб а потом на хероку?

    • @sidby966
      @sidby966 2 роки тому +1

      все отлично завелось. странно что при git init не создался по умолчанию файл с .gitignore

    • @yuramarinenkov8697
      @yuramarinenkov8697 2 роки тому

      странно. git ignore залил в репозиторий и вроде бы на Heroku уже всё почистил и заново запустил. Но что-то всё-таки нет так...

  • @РусланДенисламов-ш8ш

    Отличный контент ! Все по делу емко и максимально понятно. Спасибо огромное за труд !

  • @pavelshnurov
    @pavelshnurov Рік тому +3

    Если у кого проблемы с получением статьи по id, надо понизить версию mongoose на 6.10.0

    • @N1K0_official
      @N1K0_official Рік тому

      где это подробно можно узнать, как понизить версию ?

    • @алексейюдин-е1ы
      @алексейюдин-е1ы Рік тому

      @@N1K0_official npm i mongoose 6.10.0

    • @германпопов-з2ь
      @германпопов-з2ь Рік тому +3

      вместо колбека (err, doc) =>{}, нужно теперь чейнить
      PostModel.findOneAndUpdate({
      // что-то делаем
      }).then((doc, err) => {
      // Некоторая логика
      }).catch((reject) => {
      // Пример: res.status(404).json({
      msg: 'Статья не найдена!'
      })
      })
      Для тех кто столкнется с проблемой

  • @Ironman1703
    @Ironman1703 2 роки тому

    Спасибо за труд, шел по твоим шагам в ролике, все получилось, не без трудностей конечно. Заливал уже на Render. Еще буду допиливать функционал из ДЗ.

  • @DzhavidR
    @DzhavidR 2 роки тому +3

    Ден, объясни пожалуйста, что делает строка .populate('user').exec()
    Непонятен момент именно с exec

    • @dennisritchie2709
      @dennisritchie2709 2 роки тому +1

      Я практически не имел дело с технологиями из видоса и не смотрел сам видос, но, должно быть, речь идет о составлении запроса к базе данных. Если все так, то вызов .populate('user') - часть кода, который составляет запрос на стороне клиента (чтобы заполнить некоторую модель данных данными о пользователе), а вызов .exec() уже отправляет ранее составленный запрос к базе данных

    • @loreeltv
      @loreeltv 2 роки тому

      Насколько я понял, populate делает что-то на подобие join'a из SQL баз данных. То-есть, без этой функции в обьекте указан только _id пользователя, а с ней это ид превращается в обьект пользователя и информацию о нем, выбранную с помощью этого ид

    • @ayhanak8913
      @ayhanak8913 Рік тому +1

      у меня возникла ошибки не работал populate()

    • @vlaszubenko2610
      @vlaszubenko2610 9 місяців тому

      @@ayhanak8913 Решил проблему, выведи errors в логи в catch и увидишь проблему, у меня была проблема в том, что я в PostSchema там где user писал модель User а у меня она названа UserModel (ref: 'UserModel',)

  • @sergeylitvinenko5275
    @sergeylitvinenko5275 Рік тому

    прекрасный курс, доступно понятно при этом большой объем хорошо структурированной информации предоставил автор

  • @АнтонАвтоматизатор

    Спасибо автор за очень полезное видео!
    Подскажи пожалуйста что означает это предупрждение и что с ним делать: "
    (node:5760) [MONGOOSE] DeprecationWarning: Mongoose: the `strictQuery` option will be switched back to `false` by default in Mongoose 7. Use `mongoose.set('strictQuery', false);` if you want to prepare for this change. Or use `mongoose.set('strictQuery', true);` to suppress this warning.(Use `node --trace-deprecation ...` to show where the warning was created)
    "

    • @MidNightFuckka
      @MidNightFuckka 2 роки тому

      Тоже не знаю, но вроде и с этим все работает, если кто знает, помогите плиз

    • @длякурсов-р4к
      @длякурсов-р4к 2 роки тому +1

      @@MidNightFuckka mongoose.set('strictQuery', false); вот это добавь перед первым использование . в чем прикол не понял

    • @katerina6259
      @katerina6259 Рік тому

      @@длякурсов-р4к мне тоже такое решение помогло.

  • @ruslanlutfullin9688
    @ruslanlutfullin9688 8 місяців тому

    Прошел курс по full stack в онлайн школе и благодаря тому что я не понял его, решил заниматься Front end, а тут с 14:53 объясняют и пишут что каждая строчка обозначает вместо того чтобы вставить пример из express, как это делали в школе, и сказать что: «этот так работает, запоминайте»
    Благодарю за четкое объяснение 🤘

  • @nagibbator4449
    @nagibbator4449 2 роки тому +3

    mongo через какое то время перестает работать, пишет добавьте ваш айпи к списку разрешенных айпи, хотя там доступ для любого айпи стоит, ни кто не сталкивался с этим?

    • @fatale2ror55
      @fatale2ror55 2 роки тому

      я просто свой текущий IP добавляю в network access

    • @nagibbator4449
      @nagibbator4449 2 роки тому

      @@fatale2ror55 у меня перестает работать, приходится заново все делать

    • @fatale2ror55
      @fatale2ror55 2 роки тому

      @@nagibbator4449 это если айпи поменялся или в процессе отключается?

  • @викторгончаров-ю1г
    @викторгончаров-ю1г 2 роки тому +2

    Мега охренительное СПАСИБО!

  • @satyxa
    @satyxa Рік тому +3

    57:15 не объяснил почему _doc стало и ещё пару моментов для понимания не раскрыто, а так видос ахуенный

    • @iliyachepkin
      @iliyachepkin Рік тому +3

      Когда он возвращал только "...user", вернулся объект с большим количеством свойств внутри него. Если ты посмотришь на содержимое этого объекта ты увидишь что один из свойств это еще один объект под названием "_doc".
      Написав "...user._doc" он указал путь к свойству _doc (который является тоже объектом) внутри "...user"

    • @satyxa
      @satyxa Рік тому

      @@iliyachepkin ♥

  • @baerice
    @baerice 2 роки тому

    Не могу не оставить коммент, за продвижение канала!

  • @Оди-р1х
    @Оди-р1х Рік тому +5

    Парень с именем Ян:
    - А как зарегистрироваться?

    • @excelente9842
      @excelente9842 Рік тому +1

      придется стать Яной

  • @майнкрафт-к2и
    @майнкрафт-к2и Рік тому

    Давно хотел понять принцып работы и как там всё устроенно на бэке! Погнали! Пожелайте мне удачи!))

  • @seoonlyRU
    @seoonlyRU Рік тому +1

    чотко! лайк от кодера-гуру СЕООНЛИ!

  • @Jest_Zloi_Voli
    @Jest_Zloi_Voli 2 роки тому +1

    Отлично, как раз сейчас прохожу в ЯндексПрактикуме тему по бэкУ)

  • @ДенисСергунов
    @ДенисСергунов Рік тому

    Офигенно! Очень понятные обьянения. Спасибо!!!

  • @Алексей-и5д3в
    @Алексей-и5д3в 2 роки тому

    Спасибо за труд. Здоровья тебе и благополучия

  • @pashapofactu3897
    @pashapofactu3897 2 роки тому

    Вот это действительно новый уровень ! Спасибо

  • @vladimiralexeev2829
    @vladimiralexeev2829 2 роки тому +1

    Огромное спасибо! Было очень интересно.

  • @interstingfacts-01
    @interstingfacts-01 11 місяців тому

    Великолепно, спасибо большой за твой труд

  • @virtreal4663
    @virtreal4663 5 місяців тому

    Спасибо, шикарно объясняешь, классный курс!