Backend для начинающих на node.js express. RESTfull API, CRUD, HTTP

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

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

  • @БахтиярКалауов
    @БахтиярКалауов 3 года назад +192

    Тимур ты молодец! Никто не снимает такие уроки для бесплатных просмотров. Я очень рад что у нас есть такие люди, которые не просто готовы делиться своими знаниями но и преподносить это очень грамотно, четко и ясно. Я надеюсь что твой труд не напрасный, и что тебе воздастся это в тысячу и более раз. Желаю тебе удачи в жизни, а твоему творчеству и каналу процветания. Ну и конечно же здоровья

    • @vlad-zf1ev
      @vlad-zf1ev Год назад +2

      it-kamasutra прекрасные бесплатные плейлисты по части фронта и бэка. Так что не никто) Димыч очень дотошно разжевывает - так что дойдет даже гуманитарию =)

    • @ІванВернігора
      @ІванВернігора Год назад +2

      ​@@vlad-zf1evтолько после 5го видео тошнит от вступления

    • @ТимофейКотофеич-н9б
      @ТимофейКотофеич-н9б 10 месяцев назад

      Реакт редакс ты знать будешь крутоооо....@@ІванВернігора

    • @MAKS-FISHER
      @MAKS-FISHER 9 месяцев назад +1

      @@vlad-zf1ev ))), Димыча многие знают, но лучше их обоих смотреть...

  • @lamer492
    @lamer492 3 года назад +49

    Если тоже самое видео сделаете для новичков, но не Rest, а так же объясните GraphQL + PostgreSQL, Вам в раю отдельное место сделают

    • @vwn6735
      @vwn6735 3 года назад +7

      а если еще и NEST.js, то ващеее! :-)

    • @UlbiTV
      @UlbiTV  3 года назад +7

      @@vwn6735 будет скорее всего!)

    • @vwn6735
      @vwn6735 3 года назад +3

      @@UlbiTV Здорово, будем ждать :-) Но, если это еще и с GraphQL... то это будет то, чего на русском языке на Ютубе - нет! :-)

  • @vados7341
    @vados7341 Год назад +11

    Кто смотрит в 2023 и у кого не робит POST и PUT в постмане - зайдите в Headers и в key поставте "Content-Type" а в value "application/json".
    Спасибо за видео, лайк!

    • @errvvi
      @errvvi Год назад +1

      Спасибо большое!

    • @aggagg2172
      @aggagg2172 9 месяцев назад

      Спасибо добрый человек!!!

  • @GLOCKERS
    @GLOCKERS 3 года назад +2

    Здравствуйте, какой Вы используете плагин, который отображает подсказку в объявлении функции?

  • @roman_manro
    @roman_manro 3 года назад +3

    Можно ли начинать изучение программирования, в частности backend, с JavaScript+Node.js?
    Или лучше заходить туда через фронтенд?
    Если можно, с чего лучше начинать?
    Пишут, что фронтенд проще для начала. Я поизучал вёрстку, попробовал делать. Но понял, что не мое. Больше хочу делать содержание, а не внешку на клиентской части.
    Буду благодарен за совет

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

      Так пишут, ибо nodejs вытекает из обычного js, а его ты обычно используешь когда пишешь фронт. Больше практикуешься, понимаешь как работает клиентская часть, и уже потом ты на этой базе лезешь в бэк, чтобы понять как работают запросы для сервера, их обработка и тд.
      Ты попробовал верстку, но там и намека нет на код, т.е на js даже например.
      HTML/CSS -> JS -> Фреймворк(React, Vue, Angular) -> NodeJs и бэк. Это если путь который фронт проходит.

  • @hutoryanin
    @hutoryanin 3 года назад +37

    "какой-то комментарий..." так, на всякий случай))

    • @UlbiTV
      @UlbiTV  3 года назад +5

      хах)) Правильно, правильно!)

  • @ИванИванов-у3ч4м
    @ИванИванов-у3ч4м 3 года назад +2

    Человеки, если у кого то при подключении к бд, возникает ошибка -"codeName: 'AtlasError'", возможно вам поможет добавление нового ip с предоставлением доступа любому пользователю.

  • @vladyslavfx3892
    @vladyslavfx3892 3 года назад +58

    Для поддержки канала)) Давай серию уроков про jest, тестировать можно одно из тех приложений что ты делал в предыдущих видео. Думаю многим будет актуально.

  • @andrii_suprun_ua
    @andrii_suprun_ua 2 года назад +2

    здесь если что непонятно - поставьте на паузу и задумайтесь.. а я думаю

  • @СергейНосовец-я6в
    @СергейНосовец-я6в Год назад +14

    Как беспощадно время)
    в 2022 по ходу урока пришлось доустановить:
    express-form-data для парсинга тела запроса из form-data
    в fileService пришлось пользовать fs.rename т.к. file.mv сказал что он не функция=)
    с локальной монгой (т.к. облачная без впна теперь всё) тоже оказалось интересно, для подключения нужно создавать пользователя с правами на readWrite иначе не коннектилось (без указания юзера).
    Пока что в начале пути, материал шикарен (структурирован, понятен). Классные уроки 👍
    лайк, подписка и отдельный плейлист из ваших видео!)

    • @damakostolo
      @damakostolo Месяц назад

      Спасибо , сижу мучаюсь минут 20

  • @aibarzhumazhanov74
    @aibarzhumazhanov74 2 года назад +2

    предлагаю сделать видео для абсолютных "0". То бишь, например, с объяснений что такое json, в каких случаях нужен бэкенд. Например, для лендинга бэк не нужен, а для интернет-магазинов нужен. А зачем ecommerce нужен бэк? Чтобы как-то работать с бд? А зачем нужна бд? Чтобы, например, хранить auth данные о пользователях. А как, например, связать фронт и бэк между собой? Например, при пагинации, если у меня 500 html-страниц, то не буду ж я их вручную создавать. Соответственно, страницы должны подтягиваться с бэка или во фронте это можно сделать проще? Хер знает.

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

      По поводу "как связать бэк и фронт между собой" и как сделать роутер, если у каждой страницы товаров url будет уникальным согласен. Думаю многие бы были благодарны освещению этих тем

  • @Миханик-ч5ш
    @Миханик-ч5ш 2 года назад +1

    я начинающий. По этому видео ничего не понятно. Может нужно не просто зачитать определения, а описать явление с разных сторон, рассусолить. Как уроки it-kamasutra например по js, реакту

  • @ilya5366
    @ilya5366 3 года назад +7

    [nodemon] clean exit - waiting for changes before restart
    Что ей надо? Кто знает?

    • @ilya5366
      @ilya5366 3 года назад +3

      В общем, всем у кого выскочит данная ошибка, надо просто свой IP добавить в список IP Access List.

  • @victormog
    @victormog 3 года назад +2

    Какой-то косяк с пакетом *uuid*
    У меня заработало только при импорте:
    *_import uuid from 'uuid'_*
    и, соответственно, использовании:
    *_uuid()_*

  • @ЯрославХарченко-ф2я
    @ЯрославХарченко-ф2я 3 года назад +60

    Как всегда топ, можешь снять более углубленный курс по Node JS + Express JS, там с так как на русском очень мало информации по backend разработке

    • @disposables72
      @disposables72 3 года назад +8

      Плюсую!

    • @UlbiTV
      @UlbiTV  3 года назад +28

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

    • @fealllback5539
      @fealllback5539 3 года назад +22

      @@UlbiTV сделай, пожалуйста, я точно заплачу

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

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

  • @galayko_sergey
    @galayko_sergey 2 года назад +2

    Блин, если бы ты не сказал, то я бы читал это как No Demon, а не как Node Mon 😂

  • @JohnSmith-uv9nk
    @JohnSmith-uv9nk 3 года назад +1

    Тимур, ты мой кумир.
    И вопрос. Если мы сталкиваемся с непонятной ошибкой, пробуем решить своими силами, но не получается, то как искать решение? Как правило я копирую ошибку и гуглю ее. Приходится перелопатить много нерелевантной информации, прежде чем доберусь до нужного.
    Вот например: отправляю POST raw json запрос через Postman. Запрос успешно срабатывает. Но как только отправляю тот же самый запрос через form-data, получаю ошибку "name": "ValidationError", "message":"Post validation failed: content: Path `content` is required, title: Path `title` is required., author: Path `author` is required." Все поля текстовые.

    • @JohnSmith-uv9nk
      @JohnSmith-uv9nk 3 года назад +1

      Тимур, ты злодей!
      Заставил самого найти ошибку. Ошибка была опечаткой в импорте fileUpload.
      От любви до ненависти один шаг...

  • @роматарасов-о8л
    @роматарасов-о8л 3 года назад +83

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

    • @mikhailreznichenko8035
      @mikhailreznichenko8035 3 года назад +5

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

    • @UlbiTV
      @UlbiTV  3 года назад +8

      Будет еще что-то по тайпскрипт я думаю)

    • @apexnuts9785
      @apexnuts9785 3 года назад

      @@chikenmacnugget помогает в разработке, уменьшает шанс появления ошибок при работе с данными

    • @romankocherezhchenko34
      @romankocherezhchenko34 3 года назад +1

      @@chikenmacnugget за счет типов которые помогут тайпскрипту ругаться на дева который решил например вызвать свойство которого не существует(js скажет "красавчик")

    • @romankocherezhchenko34
      @romankocherezhchenko34 3 года назад

      @@chikenmacnugget Я знаю что Илья Климов осветил вопрос надежности тайпскрипта, и он прав. Есть готовая к продакшну альтернатива?

  • @Chubrik-jh6yx
    @Chubrik-jh6yx 3 года назад +1

    пожалуйста подскажите каак вызвать функицю в момент 8:36, автор не сказал на что нажал (

  • @p.v.a.8638
    @p.v.a.8638 2 года назад +1

    Всем примет, подскажите, как называется расширение, что б высвечивалось содержание объектов в маленьких окошечках в коде, как у автора? Типа req :Request?

  • @CyberGenius777
    @CyberGenius777 3 года назад +19

    ТИМУР, ты рофлишь?)) Кем ты успел поработать в свой 21 год, что так много знаешь. РЕспект просто

    • @barbatage5078
      @barbatage5078 3 года назад +4

      +

    • @UlbiTV
      @UlbiTV  3 года назад +4

      Ахахах)) Да на самом деле ничего особенного) Спасибо!

    • @varanakonda
      @varanakonda 3 года назад +6

      Наверняка причина в том, что Тимур инвестировал своё время в изучение нового, а не в развлечения.

    • @adelinaromanova8353
      @adelinaromanova8353 3 года назад

      Это точно!

  • @nouchance
    @nouchance 3 года назад +8

    do slez.... na schet 404 eto uje nostalgiya :D spasibo bolshoe ;) podacha informatsii' otlichno!!!

    • @UlbiTV
      @UlbiTV  3 года назад +1

      Спасибо!)

  • @ТимСлим
    @ТимСлим 3 года назад +20

    Вижу Ulbi - ставлю лайк!

    • @UlbiTV
      @UlbiTV  3 года назад +2

      Спасибо!)

  • @dimitriywhite7728
    @dimitriywhite7728 3 года назад +1

    как Mongo узнал, что посты нужно кидать именно в коллекцию posts? где это указывается?

  • @uNkind33
    @uNkind33 3 года назад +21

    спасибо за видео, как всегда сначала лайк, потом просмотр!

    • @djonyV
      @djonyV 3 года назад +3

      Аналогично:)

    • @UlbiTV
      @UlbiTV  3 года назад +1

      Благодарю!)

    • @UlbiTV
      @UlbiTV  3 года назад +1

      @@djonyV Спасибо!)

  • @g0rse
    @g0rse 3 месяца назад +2

    🎯 Key points for quick navigation:
    00:03 *🖥️ Введение в backend разработку и REST API*
    - Курс предназначен для начинающих программистов и frontend разработчиков
    - Рассмотрение основных теоретических моментов и практическое закрепление знаний
    - Использование Node.js для разработки backend
    01:10 *🔄 Клиент-серверное взаимодействие и основы HTTP*
    - Обзор клиент-серверного взаимодействия
    - Основы HTTP протокола и типы запросов (GET, POST, PUT, DELETE)
    - Структура HTTP запроса: заголовки, тело запроса и статус-коды ответов
    04:24 *🌐 REST API и CRUD операции*
    - Понятие REST API и его преимущества
    - Пример HTTP запроса и обработки на сервере
    - CRUD операции: создание, чтение, обновление и удаление данных
    06:29 *🛠️ Настройка проекта и первый сервер на Express*
    - Установка Node.js и Postman
    - Инициализация проекта и установка зависимостей
    - Создание простого сервера на Express и обработка GET запроса
    10:10 *🔧 Работа с запросами и параметрами*
    - Использование nodemon для автоматической перезагрузки сервера
    - Обработка query параметров в GET запросе
    - Работа с телом запроса в POST запросе
    12:53 *💾 Подключение базы данных MongoDB*
    - Выбор и подключение базы данных к серверу
    - Создание проекта в MongoDB Atlas
    - Настройка кластера базы данных
    13:48 *🗄️ Подключение к базе данных MongoDB*
    - Создание пользователя и получение URL для подключения
    - Установка и импорт библиотеки Mongoose
    - Настройка подключения к базе данных с обработкой ошибок
    16:47 *📝 Создание модели данных для постов*
    - Описание схемы поста с полями: автор, заголовок, контент, изображение
    - Создание и экспорт модели на основе схемы
    - Пример создания и сохранения поста в базе данных
    19:32 *🚀 Улучшение обработки запросов и ошибок*
    - Возврат созданного поста клиенту
    - Обработка ошибок при создании поста
    - Реализация блока try-catch для предотвращения падения сервера
    21:21 *🛣️ Создание и настройка роутера*
    - Создание отдельного файла для роутера
    - Описание маршрутов для операций CRUD с постами
    - Регистрация роутера в основном приложении
    23:56 *🎮 Создание контроллера для постов*
    - Выделение логики обработки запросов в отдельный контроллер
    - Реализация функций для каждого маршрута (create, getAll, getOne, update, delete)
    - Подключение функций контроллера к соответствующим маршрутам
    25:59 *💾 Реализация логики CRUD операций*
    - Получение всех постов из базы данных
    - Получение конкретного поста по ID
    - Обработка ошибок и валидация входных данных
    27:50 *🔍 Реализация функции получения поста по ID*
    - Копирование ID существующего поста
    - Отправка GET-запроса с ID в строке запроса
    - Получение конкретного поста по ID
    30:24 *🔄 Реализация CRUD операций*
    - Создание endpoint'ов для создания, получения, обновления и удаления объектов
    - Тестирование всех операций с помощью Postman
    - Обработка ошибок при отсутствии ID
    31:33 *🏗️ Введение в слои абстракции*
    - Разделение логических частей приложения на отдельные модули
    - Описание слоев: DAL (доступ к данным), контроллер, сервис
    - Преимущества использования слоев абстракции
    33:24 *🛠️ Реализация сервисного слоя*
    - Создание файла post.service.js
    - Перенос логики из контроллера в сервис
    - Адаптация функций для работы без request и response
    37:49 *📁 Работа с файлами и изображениями*
    - Установка модуля express-fileupload
    - Добавление обработки файлов в контроллер
    - Создание отдельного сервиса для работы с файлами
    42:35 *📁 Реализация функции сохранения файла*
    - Создание функции для перемещения файла по указанному пути
    - Обработка ошибок с использованием блока try-catch
    - Импорт и использование файлового сервиса в post-сервисе
    43:33 *🔄 Обновление объекта поста с добавлением информации о файле*
    - Добавление поля picture к объекту поста
    - Отправка запроса и устранение ошибки асинхронности
    - Проверка сохранения файла в папке static
    44:14 *🖼️ Настройка сервера для отдачи статических файлов*
    - Использование функции express.static для обработки статических файлов
    - Демонстрация доступа к сохраненному изображению через браузер
    - Объяснение, как использовать полученный URL изображения в HTML-теге img
    Made with HARPA AI

  • @404piano
    @404piano 3 года назад +18

    Что ты делаешь? Топ!!!

    • @UlbiTV
      @UlbiTV  3 года назад +2

      Благодарю!)

  • @Almas-2002
    @Almas-2002 3 года назад +16

    Огоо круто , спасибо за видео!

    • @UlbiTV
      @UlbiTV  3 года назад +3

      И тебе спасибо!)

  • @mishakalyna
    @mishakalyna 3 года назад +9

    Почему мы сначало ставим лайк, а потом смотрим видео))

    • @UlbiTV
      @UlbiTV  3 года назад +3

      Чувствую вашу поддержку!)

  • @starunski_
    @starunski_ 3 года назад +2

    СПАСИБО

  • @maksymovych_maksym
    @maksymovych_maksym 3 года назад +2

    Спасибо, хорошее видео.
    На сколько есть хорошим тоном вот такой экспорт - export default Class()?
    Первый раз вижу инит класса на экспорте.

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

    Сейчас MongoDB не работает из России. Приходится через VPN, видимо из-за этого "MongoServerError: bad auth : Authentication failed." Ещё "npm i -D nodemon" не работает, всеравно не появляется динамичного лога. Из-за этого и постман не видит сервер походу...

  • @maximbarishov4120
    @maximbarishov4120 Год назад +1

    form-data не работает, пишет validation error типа поля обязательные а я их не указываю, это на моменте когда файл нужно загружать но через raw успех, ищу решение, внятного нету нигде

  • @_GyG_
    @_GyG_ 3 года назад +11

    Вначале даже что-то понимал, и наивно думал, что на этот раз то я смогу досмотреть до конца и осознать истину!
    (Наивный я и глупый :-) )

    • @UlbiTV
      @UlbiTV  3 года назад +1

      Ну досмотреть до конца хоть получилось?))

    • @_GyG_
      @_GyG_ 3 года назад +4

      @@UlbiTV ближе к концу уже потерял нить повествования и не видел смысла досматривать) как нибудь соберусь и посмотрю заново

    • @UlbiTV
      @UlbiTV  3 года назад +3

      @@_GyG_ Успехов!)

    • @Jdjdjjjxhzh
      @Jdjdjjjxhzh 3 года назад

      Ну что, досмотрел?)

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

      Я раз 5 пытался про ноду видосы смотреть и вообще не вдуплял че происходит, хотя реакт нормально заходил и вообще думал, что js более-менее знаю. Вернулся спустя какое-то время и на удивление что-то начал понимать

  • @MAKSIMTSA
    @MAKSIMTSA 3 года назад +2

    Нужно ещё снять видео про TypeSctipt в Node JS

  • @raybulworker6092
    @raybulworker6092 3 года назад +1

    народ кто подскажет по поводу jpg? на локалхосте все работает норм, на хероку, объект сохраняется с полем пикчер, но сама пикча видимо не сохраняется по тому что по запросу выдается 404 . кто знает че делать?)

  • @tonymonttana7
    @tonymonttana7 3 года назад +6

    Спасибо за видио! ты читаешь мысли)) только хотел узнать по подробней о бэке))

    • @UlbiTV
      @UlbiTV  3 года назад +1

      После того, как этот ролик будет предельно понятен, можно посмотреть курс про интернет магазин, он посложнее)

  • @mrivanan101
    @mrivanan101 3 года назад +2

    Ставлю 42 лайка. То, что нужно

  • @ровойт
    @ровойт 3 года назад +4

    то что нужно для меня-спасибо

  • @natanrock4358
    @natanrock4358 3 года назад +4

    лучший))

    • @UlbiTV
      @UlbiTV  3 года назад +1

      Спасибо!)

  • @karway211
    @karway211 3 года назад +4

    Круто! Спасибо! node.js express. RESTfull API, CRUD, HTTP

    • @UlbiTV
      @UlbiTV  3 года назад +1

      Рад слышать;)

  • @aleksandrzelenskiy4000
    @aleksandrzelenskiy4000 3 года назад +1

    Проверка наличие id, если мы его принимаем в query.params нормально не отрабатывает. Даже если никакой id не передаешь. Пробовал на length проверять - тоже не выводит ошибку.

    • @UlbiTV
      @UlbiTV  3 года назад +2

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

  • @hutoryanin
    @hutoryanin 3 года назад +8

    *Л а й к* за отличное видео

    • @UlbiTV
      @UlbiTV  3 года назад +1

      Спасиб!

  • @bebrix6288
    @bebrix6288 3 года назад +12

    Спасибо, очень интересный материал. Было бы интересно посмотреть на nest.js + postgresql.

    • @UlbiTV
      @UlbiTV  3 года назад +3

      Будет!) Спасибо!

  • @mykhailostepanishchev6472
    @mykhailostepanishchev6472 3 года назад +4

    спасибо ,как всегда супер ! RESTfull API, CRUD, HTTP, node.js, express

    • @UlbiTV
      @UlbiTV  3 года назад

      Спасибо!)

  • @itpro952
    @itpro952 3 года назад +14

    Спасибо вам как обычно!!

    • @UlbiTV
      @UlbiTV  3 года назад +1

      И вам спасибо!)

  • @wardog4244
    @wardog4244 3 года назад +15

    Супер! Формат контента лучший что я видел!

    • @UlbiTV
      @UlbiTV  3 года назад +3

      Спасибо, стараюсь!

  • @disposables72
    @disposables72 3 года назад +4

    Прикольный на самом деле урок. Помню как я маялся создавал бэк с постгрессом, потом прикручивал туда nginx, pm2 вроде, и самое забавное - основная цель была авторизация. И чёт как-то посложнее это всё было в реализации, jwt опять же пришлось юзать. При том что я полный ноль в бэке, т.к. фронт/джун. Автор, сделай доброе дело, запили доп урок с авторизацией, с использованием jwt и oauth2. Насколько я понял, оно сейчас почти на всех проектах так.

    • @UlbiTV
      @UlbiTV  3 года назад

      Да для фронта, еще если и с беком опыта нет, то вообще муть конечно) Про авторизацию есть урок на канале, возможно сниму более продвинутую версию попозже

  • @bodfxua7698
    @bodfxua7698 3 года назад +1

    Почему import а не require??

  • @radikovichkz2470
    @radikovichkz2470 3 года назад +1

    Тимур, почему в бекенде лучше не сделать на запись отдельный api например saveUser а на получение getUser. Зачем get post

  • @nemirovandrei
    @nemirovandrei 3 года назад +11

    Очень сложно во время просмотра не поставить лайк, спасибо тебе! Давай еще бэк для фронтов )) Сделаешь сферу образованее

  • @nvdedmz
    @nvdedmz 3 года назад +2

    А зачем uuid если можно вязать его hash ?

    • @UlbiTV
      @UlbiTV  3 года назад

      Да, можно)

    • @nvdedmz
      @nvdedmz 3 года назад

      @@UlbiTV я как-то жахнул статику с прода... вот за счет хеша, я просто заново отправил все картинки через сервис на бэкэнде, он сам поменял имена под хеш и все выровнялось, бд править не пришлось

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

    Спасибо. Но у меня getOne и update не работает..

  • @brianryan4053
    @brianryan4053 2 года назад +5

    Высший класс!!! Это лучшее видео, которое Вы сделали!!! Респект!!! В этом видео нет ничего лишнего, и в тоже самое время есть всё необходимое. Вообще для начинающих бэкэндеров хочу пояснить - бэкэнд это две вещи: базы данных и написание эндпойнт методов, всё остальное - бюрократические процедуры

  • @ipa_stor
    @ipa_stor 3 года назад +11

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

    • @ipa_stor
      @ipa_stor 3 года назад +3

      Особое спасибо за инфу, как использовать import вместо require, не знал, как правильно делать, а с ним код понятней:))) ну и слои абстракции были очень полезны, в остальном, закрепил знания, надеюсь🤣🤣🤣

    • @UlbiTV
      @UlbiTV  3 года назад +2

      @@ipa_stor Главное, что хоть что то было полезно!)

    • @ipa_stor
      @ipa_stor 3 года назад +1

      @@UlbiTV как это хоть что-то, все видео полезно, часть новые знания, часть закрепление старых:))) 👍

  • @Kotekld
    @Kotekld 3 года назад +7

    Как долго я тебя искал! Подписался!

    • @UlbiTV
      @UlbiTV  3 года назад +2

      Спасибо!)

  • @shyma_grasious
    @shyma_grasious 3 года назад +3

    оух жирненький видосик) сделай еще такое в этом духе, про шифрование, https с теорией и маленькой практикой. Хорошего тебе дня

  • @ollegat
    @ollegat 3 года назад +2

    красава, оч хорошо объясняешь по бэкенду

  • @andygr1n1
    @andygr1n1 3 года назад +2

    Классно!

  • @nikital.9036
    @nikital.9036 3 года назад +1

    Почему такой плохой звук... fifine k669 на алике стоит 2.5к всего...

    • @UlbiTV
      @UlbiTV  3 года назад

      Надо обновиться...Соглашусь

  • @antonkleshnev5342
    @antonkleshnev5342 3 года назад +11

    Крутое видео !)!) Все очень доходчиво и примеры хорошие)))

    • @UlbiTV
      @UlbiTV  3 года назад +1

      Благодарю!)

  • @vadimbely1974
    @vadimbely1974 3 года назад +4

    Spasibo ogromnoe, ochen nravitsya kak ti obyasnyaesh

    • @UlbiTV
      @UlbiTV  3 года назад +3

      Спасибо!)

  • @kseniavii
    @kseniavii 3 года назад +1

    Почему то при post запросе падает 404 ошибка

  • @artemmelnuk6713
    @artemmelnuk6713 3 года назад +3

    очередной какой-то коментарий

    • @UlbiTV
      @UlbiTV  3 года назад +1

      Для поддержки канала?)

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

    Крытой урок!)

    • @UlbiTV
      @UlbiTV  3 года назад +1

      Спасибо!)

    • @jojomajo
      @jojomajo 3 года назад

      Крытый)

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

    Вроде и понятно, пока повторяю, а сама написать не смогу...

  • @dispeltr1183
    @dispeltr1183 3 года назад +7

    ссылка на исходники не работает

    • @UlbiTV
      @UlbiTV  3 года назад +1

      поправил

  • @bezbezov8867
    @bezbezov8867 3 года назад +2

    Красавчик 🤝

  • @denisoleksyuk5346
    @denisoleksyuk5346 3 года назад +2

    классные уроки!

  • @Artem-vb8hb
    @Artem-vb8hb 3 года назад +16

    Очень полезное видео, только хотелось бы увидеть его продолжение например на реакте где будет уже +- показана отрисовка данных с бд и првязка этих всех запросов к конкретным кнопкам. Я +- понимаю что нужно делать пост запрос скорее всего, через мап отрисовывать все, считывать ид при удалении, но хотелось бы увидеть и понять это от вас. Спасибо.

    • @ipa_stor
      @ipa_stor 3 года назад +1

      Схожие задачи Тимур объясняет в курсе про mern диск, там и бэк и фронт, если не хотите ждать, можно ознакомиться там(конечно, если ещё этого не сделали:))) к слову, в том курсе достаточно подробно описано, как работать с запросами( react + axios)

    • @UlbiTV
      @UlbiTV  3 года назад +1

      @@ipa_stor Спасибо, Рус))

    • @UlbiTV
      @UlbiTV  3 года назад +1

      Есть курс, в одном видео, 2.5 часа идет по созданию интернет магазина, можно сказать это усложненная версия этого ролика) рекомендую

  • @radikovichkz2470
    @radikovichkz2470 3 года назад +1

    Привет. Куда идти после node js?

  • @deny_awesome
    @deny_awesome 3 года назад +4

    Спасибо за крутой контент!!! Канал - огонь!!! Вообщем, после этого урока запустил я впервые сервер на express и залил в mongoDB 16 пользователей - все у меня вывелись на фронте. Всё бы хорошо, но мне необходимо сделать постраничный вывод(пагинацию) по 4 пользователя на странице. Пролазил я 3 дня по форумам и видео с REST API, но так и не нашёл где в node следует вводить значения get-параметров(query string). Пробовал в postman создать 4 post-запроса по 4 пользователя с помощью params, вводя в key значение page , а в value номер необходимой страницы. В итоге в браузере ввожу «localhost:8888/api/users?page=2» и мне вместо пользователя 5, 6, 7 и 8 выводятся все 16. Подскажите, пожалуйста как в nodejs для endpoint устанавливать значение get-запросов, с помощью чего это делается и где именно, в каком файле? Развития каналу, спасибо за ваш труд!!!

    • @UlbiTV
      @UlbiTV  3 года назад

      Спасибо за отзыв!) в двух словах тут не отвечу, посмотрите курс по созданию интернет магазина на канале и найдете ответ на свой вопрос!

  • @tuRistst
    @tuRistst 3 года назад +3

    Привет. Будут ли уроки по Flutter в будущем?)

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

    Есть у кого-нибудь мысли, как пофиксить форм-дату? Пробовал боди парсером и экспресс формдатой, не помогло, все так же не видит запросы с форм датой, но при этом raw работает корректно.
    upd. попробовал взять зависимости из package.json автора, все заработало, видимо, с более высокой версией экспресса не работает.

  • @DubinArtur
    @DubinArtur 8 месяцев назад +1

    4:34 Сколько времени смотрю, только сейчас понял, что канал Юлби тв, а не ЮАЙби тв

  • @dmitrykarpovich186
    @dmitrykarpovich186 3 года назад +2

    Отлично! Смотрю ролики и у Владилена Минина и у тебя и мне твои больше по душе)

  • @ТарасЦуприк
    @ТарасЦуприк 3 года назад +2

    Лучший урок который я видел

  • @daniilthegunner843
    @daniilthegunner843 3 года назад +1

    А сервера гугла, яндекса и т.д - это какие-то здоровенный железяки где-то расположенные? А если их, допустим повредили, ну там самолет упал или типа того)) Что будет?

    • @UlbiTV
      @UlbiTV  3 года назад

      Ахахах, ну в таком случае будет все печально

  • @programming5944
    @programming5944 3 года назад +13

    невероятно полезные уроки делаешь, спасибо!

    • @UlbiTV
      @UlbiTV  3 года назад +2

      Благодарю!

  • @wellemangrey3645
    @wellemangrey3645 3 года назад +3

    27:29 думаю нет смысла проверять есть id или нет, если get-запрос перешёл в '/posts', то всё что идет дальше (после '/posts/') будет считаться ид-шником.
    А в put и delete имеет смысл.

    • @UlbiTV
      @UlbiTV  3 года назад

      Да, все верно!) Просто хотел на этом примере показать, как это впринципе делать)

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

      В delete вроде тоже смысла нет, даже если есть проверка, сообщение "id не указан" все равно не приходит. Приходит ошибка, что нет роутера DELETE posts/

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

      И еще при проверке id в put, нужно писать return res... так как если код на этом не остановится, далее сервер будет падать. Если id не указать в запросе конечно. Правда в видео вроде не упал и у меня тоже со второго раза начал падать, хз почему. Насколько я понимаю js, при любом респонсе нужно писать return

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

      @@ivandanilin5690 У меня тоже упал. И я тоже видео в этом месте пересмотрел несколько раз. Автор этот момент тупо пропустил. Короче, я тоже сам догадался перед res написать return. Потом полез в комменты искать заметил ли кто-то кроме меня эту ошибку. Оказалось, я не один такой молодец)

  • @swashyone1
    @swashyone1 3 года назад +3

    Огонь! Спасибо большое!

  • @АлексейГундин-э9о
    @АлексейГундин-э9о 3 года назад +1

    А как можно тебе на карту задонатить? У меня кошельков нет, я всё с карты Сбера оплачиваю.

    • @АлексейГундин-э9о
      @АлексейГундин-э9о 3 года назад +1

      А, всё - там перевод с платёжной системы IO. Задонатил, спасибо огромное за контент!

    • @UlbiTV
      @UlbiTV  3 года назад +1

      Получил дружище, спасибо большое!)

  • @dimalukashenko4865
    @dimalukashenko4865 3 года назад +2

    Крутяк, то что надо для новичков

  • @ИванИванов-о3с2з
    @ИванИванов-о3с2з 3 года назад +1

    Чувак, 10 лайков 👍👍👍👍👍👍👍👍👍👍

  • @chirkov
    @chirkov 3 года назад +1

    43:39 ахаха фраза для мемасика, подойдет на все случаи жизни

  • @riseofkingdoms6183
    @riseofkingdoms6183 Год назад +1

    Привет! хотел уточнить на этом сейчас актуально писать бек?

  • @ContrastVision
    @ContrastVision 3 года назад +3

    Неплохой урок, отлично дает представление о бекенд разработке на ноде.
    p.s. огромное пожелание улучшить качество звука, возможно дело в микрофоне

  • @lekerzi9878
    @lekerzi9878 3 года назад +2

    Дружище а есть у тебя курсы на udemy express.Js?

    • @UlbiTV
      @UlbiTV  3 года назад +2

      Планировал сделать, но времени пока не хватает доделать

  • @Darkaind
    @Darkaind 2 года назад +2

    Чего-то у меня, как обычно, все через одно место. Вот что не так? :(
    Делаю в Вижл студио код, ну собственно код в index.js
    import express from 'express'
    const PORT = 5000;
    const app = express()
    app.listen(PORT, callback: () => console.log('server' + PORT))
    в 4й строке callback: двоеточие подчеркивает как ошибку, и код не работает

    • @UlbiTV
      @UlbiTV  2 года назад +2

      Callback убери, это подсказка от вебшторма, оставь просто () => ….

    • @Darkaind
      @Darkaind 2 года назад +2

      @@UlbiTV ахвононочто)))
      Блин, спасибо, а то я весь гугль перерыл, что это такое, как оно работает и что вообще. А это оказывается подсказка от проги >_<
      А так урок вроде доступный (если не считать моего затупка), спасибо, с меня плюсик и подписка :)

  • @nvdedmz
    @nvdedmz 3 года назад +3

    Давай авторизацию полного цикла с токенами рефрешами и всей обмазкой на фронте

    • @UlbiTV
      @UlbiTV  3 года назад +2

      Планирую такое, но когда, пока трудно сказать

  • @my_area-fenix9482
    @my_area-fenix9482 3 года назад +1

    Привет, Тимур а скажи каким образом ты используешь import/export в среде Node.js ?? вроде бы IDE ругается если не использовать require, или это плагин какой то?

    • @Andrei-tf7fv
      @Andrei-tf7fv 3 года назад +2

      Смотри внимательнее, Тимур про это указывает. На 8.10 мы прописываем в package.json новое поле type:'module'

  • @tuliusea8509
    @tuliusea8509 7 месяцев назад +3

    На 2024 год курс устарел и нужны были доработки. Я постарался и сделал чуть лучше. У кого есть проблемы с кодом, пишите, помогу!

    • @engardian9864
      @engardian9864 6 месяцев назад

      Есть. На моменте когда он убирает id из PUT, у него возвращается "id не найден" и все работает дальше. У меня при таком же самом коде и таком же действии возвращается в постмене то же самое, но сервер крашиться потому что "один код ошибки (400) уже отправлен (как раз наш "id не найден"), а код 500 нельзя отправить". Все же вопрос, почему у меня крашит на етом моменте, а у него нет? И почему оно вобще в таком случае хочет отправлять 500, если уже отправлено 400...

    • @vadim_romanov
      @vadim_romanov 4 месяца назад

      @@engardian9864 в блоке if поставьте return перед res.json.... чтобы код не пошел дальше если id не передан, тогда работает

    • @LenaFelica_songwriter
      @LenaFelica_songwriter 4 месяца назад

      Все, что с id - не возвращает - get по id, put по id - в постмане ошибка. я с postgresql работаю
      Вот код на getOne и Update
      async getOne(req, res) {
      try {
      const {id} = req.params
      if (!id) {
      return res.status(400).json({message: 'Id не указан!'})
      }
      const post = await Post.findById(id)
      return res.json(post)
      } catch(e) {
      res.status(500).json(e)
      }
      }
      async update(req, res) {
      try {
      const post = req.body;
      if(!post.id) {
      return res.status(400).json({message: 'Id не указан'})
      }
      let updatedPost = await Post.findByIdAndUpdate(post.id, post, {new: true})
      return res.json(updatedPost)
      } catch(e) {
      res.status(500).json(e)
      }
      }
      id в постмане такого типа - "id": 6, не ищутся при поиске одного поста!
      У Тимура монго генерирует 16ти значные айдишники, при том, автоматом показано, что неизменный ._id
      Как поправить?
      При этом, post запросы работают
      посты в базу сохраняются
      Post.js - я использую sequelize:
      const sequelize = require('./db')
      const {DataTypes} = require('sequelize')
      const Post = sequelize.define('post', {
      // id: {type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true}, // - с этой строкой и без нее - резалт одинаковый.
      author: {type: DataTypes.STRING, allowNull: false},
      title: {type: DataTypes.STRING, allowNull: false},
      content: {type: DataTypes.STRING, allowNull: false},
      picture: {type: DataTypes.STRING}
      })
      module.exports = {Post}

  • @leninzhiv6180
    @leninzhiv6180 2 года назад +2

    подскажите из хорошего, что можно вместо MongoDb использовать (не работает в РФ и РБ)

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

      Монго локально можно установить, не работает только облачный сервис

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

      @@UlbiTV спасибо

  • @radikovichkz2470
    @radikovichkz2470 3 года назад +1

    Тимур какие техники защиты есть от скраппинга с вашего API сайта? А также защита от множественных запросов к api с клиента

  • @qahhorovbaxtiyor
    @qahhorovbaxtiyor 3 года назад +2

    Гитхуб код not found

    • @UlbiTV
      @UlbiTV  3 года назад +1

      исправил!

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

    отдельное место в раю тебе мужик. СПАСИБО!!!

  • @mikhailreznichenko8035
    @mikhailreznichenko8035 3 года назад +3

    Да блин , и когда мне всё смотреть?!

    • @UlbiTV
      @UlbiTV  3 года назад +2

      Надо успевать!! годнота же!

  • @ПерецьЧервоний
    @ПерецьЧервоний 3 года назад +1

    import зря надо require юзать, но в целом 10/10

  • @cob41n
    @cob41n 3 года назад +13

    Лайк. Хотелось бы увидеть еще что-то по backend, связанное с регистрацией/авторизацией/созданием админ-панели и т.д.

    • @UlbiTV
      @UlbiTV  3 года назад +3

      Есть ролик про регистрацию\авторизацию на канале