Подключаем базу данных PostgreSQL. TypeORM. Создаем связи таблиц. NestJS, ReactJs [eng subs]

🤟 Ссылка на исходники : bit.ly/nest-react-src
В этом видео мы покажем, как подключить базу данных PostgreSQL с использованием TypeORM. Вы узнаете, как создавать связи между таблицами в рамках NestJS и ReactJs проектов. Мы предоставим пошаговую инструкцию и примеры кода, чтобы помочь вам освоить эти концепции. Видео с английскими субтитрами
🔥 Обе сборки можно получить по ссылке:
/ gulp-tailwindcss-sbork...
🏆 Поднять мотивацию и получить плюшки(исходники, чат со мной):
🔹 Patreon: / roman_timoshchuk
🔹 Buy me a coffee: www.buymeacoffee.com/tymoshchuk
🔹 Crypto:
👉 USDT(ERC20): 0xA4008910De17DB20c7505425316fF72d4C5Eed96
👉 USDT(BEP20): 0x4350c4E1C0bB35634C7fDE1cFB278BE0606E3822
👉 Binance Pay: 432902886
⏱️ Тайм-коды: ⏱️
00:00 Вступление
00:00:23:24 PostgreSQL Установка и настройка
00:03:30:18 NestJS Config Установка и настройка
00:05:53:05 TypeORM Установка и настройка
00:17:11:53 User Entity
00:21:43:05 Category Entity
00:24:00:03 Связь таблиц User & Category
00:25:32:55 One-To-Many
00:29:55:56 Many-To-One
00:33:19:29 Transaction Entity
📨 Сотрудничество ► timoschuk.roman@gmail.com
📨 Business inquiries ► timoschuk.roman@gmail.com

Пікірлер: 98

  • @lets_try_js
    @lets_try_js Жыл бұрын

    04/16.Подключаем базу данных PostgreSQL + TypeORM. Настраиваем связь между таблицами. Ролики будут выходить я думаю примерно раз в 2-4 дня. Надеюсь на вашу поддержку :)

  • @user-ws6du9xz6u
    @user-ws6du9xz6u5 ай бұрын

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

  • @lets_try_js

    @lets_try_js

    5 ай бұрын

    отличный подход)

  • @Virisound
    @Virisound Жыл бұрын

    Молодец, стараешься объяснить - даже я пень, понимаю. И еще подбадриваешь, это тоже круто.

  • @Virisound
    @Virisound Жыл бұрын

    Чувак с юморком))) - "чуть сложнее", "еще сложнее" - Коммент в поддержку: sfsdfsdfsdfsdfsdf вапываыва вавы eddddr4 6jm

  • @lets_try_js

    @lets_try_js

    Жыл бұрын

    потому что сложная тема))))

  • @duce201
    @duce201 Жыл бұрын

    Спасибо большое за уроки! Очень подробно и ясно объясняешь!!!!

  • @lets_try_js

    @lets_try_js

    Жыл бұрын

    благодарю)

  • @user-ql7vi6mu3q
    @user-ql7vi6mu3q Жыл бұрын

    Спасибо большое за уроки!

  • @ulul8656
    @ulul8656 Жыл бұрын

    Спасибо, ультра полезно Без базовых знаний по SQL думаю было совсем непонятно (по крайней мере мне), но с ними ок

  • @Betelgeuse009
    @Betelgeuse009 Жыл бұрын

    Очень классно объяснил. Это лучшее объяснение что я нашел в инете) Мне стало понятно много моментов которые я просто копировал не понимая что делаю. Теперь стало горазда лучше)

  • @lets_try_js

    @lets_try_js

    Жыл бұрын

    круто)

  • @TravinskiyVladislav
    @TravinskiyVladislav Жыл бұрын

    С нетерпением жду продолжения

  • @lets_try_js

    @lets_try_js

    Жыл бұрын

    завтра уже интересный ролик будет)

  • @TravinskiyVladislav

    @TravinskiyVladislav

    Жыл бұрын

    @@lets_try_js Заметил одну интересную фишку: при создании с помощью nest g resource при написании названия во множественном числе - он делает название entity в единственном. например Users - user может это значит, что домен надо называть во множественном числе?

  • @lets_try_js

    @lets_try_js

    Жыл бұрын

    @@TravinskiyVladislav вообще по хорошему да, мой косяк лучше во множественном

  • @user-tf8wx7cj3v
    @user-tf8wx7cj3v9 ай бұрын

    Огромное человеческое спасибо

  • @multtanker6365
    @multtanker63656 ай бұрын

    оч классные уроки, хорошо объясняешь)

  • @lets_try_js

    @lets_try_js

    6 ай бұрын

    старался как можно проще что б было)

  • @vyacheslavmorozov1272
    @vyacheslavmorozov12728 ай бұрын

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

  • @SergiySev

    @SergiySev

    6 ай бұрын

    декоратор это антипатерн за который надо бить линейкой по пальцам

  • @mihaylov13

    @mihaylov13

    Ай бұрын

    ​@@SergiySev почему? 😊

  • @TheBaltsaros
    @TheBaltsaros11 ай бұрын

    Большое спасибо за курс и за то, что продолжаешь делать видео на русском, несмотря на войну (надеюсь, что весь этот ад скоро закончится и война обойдёт тебя стороной). Очень крутой курс! Удачи тебе!

  • @TravinskiyVladislav
    @TravinskiyVladislav Жыл бұрын

    Пошли приятные темы, благодарю

  • @lets_try_js

    @lets_try_js

    Жыл бұрын

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

  • @TravinskiyVladislav

    @TravinskiyVladislav

    Жыл бұрын

    ​​@@lets_try_js знаем) Ну я по официальной документации обучаюсь, а Ваши уроки - приятный бонус 😊

  • @lets_try_js

    @lets_try_js

    Жыл бұрын

    @@TravinskiyVladislav мне тоже нравится такой подход) и документация у неста очень крутая тоже)

  • @user-non-user
    @user-non-userАй бұрын

    Спасибо за твой труд

  • @Magoed694
    @Magoed6949 ай бұрын

    Поддерживаю автора, несмотря на "эээм..." и прочие паузы, повествование на отличном уровне. Всё предельно ясно и понятно. Автор, не останавливайся. Всё огонь

  • @lets_try_js

    @lets_try_js

    9 ай бұрын

    от "'эммм" никуда не деться, так как я записываю все оним дублем) без скриптов и прочего. сел и пишу

  • @pablo8896

    @pablo8896

    2 ай бұрын

    @@lets_try_js но это не плюс, скорее минус

  • @lets_try_js

    @lets_try_js

    2 ай бұрын

    @@pablo8896 для кого как. для меня плюс

  • @pablo8896

    @pablo8896

    2 ай бұрын

    @@lets_try_js ну тогда круто👍🏿

  • @user-fs3vk5qe3l
    @user-fs3vk5qe3l Жыл бұрын

    Спасибо за урок

  • @snieda_programming
    @snieda_programming Жыл бұрын

    дякую !

  • @reginapopova3062
    @reginapopova30623 ай бұрын

    Спасибо)

  • @user-cg1is4rs2d
    @user-cg1is4rs2d11 ай бұрын

    спасибо!

  • @Vinits-i
    @Vinits-i2 ай бұрын

    Класс!!

  • @user-uy9zy1gy8b
    @user-uy9zy1gy8b10 ай бұрын

    16:06 - протистояння React і Angular вирішилось!) Прийшов Nestjs і Vuejs! І Реакт розробникам довелось вивчати абстракції, які знають усі Angular розробники 🤭

  • @denisshulga7539
    @denisshulga7539 Жыл бұрын

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

  • @lets_try_js

    @lets_try_js

    Жыл бұрын

    Благодарю )

  • @armat_dt
    @armat_dt12 күн бұрын

    Спасибо за уроки! Есть вопрос, можно ли использовать "autoLoadEntities: true" вместо "entity: [__dirname + "/**/*entity{.ts,.js}]" внутри конфига typeorm?

  • @boburmustafo8868
    @boburmustafo8868 Жыл бұрын

    spasibo

  • @yevhenfodorov121
    @yevhenfodorov1217 ай бұрын

    сколько лет опыта у автора канала? огромная благодарность за курс..

  • @lets_try_js

    @lets_try_js

    7 ай бұрын

    Смотря какие технологии. В целом лет 5

  • @user-ud7oo6es4b
    @user-ud7oo6es4b2 ай бұрын

    у кого ошибка при подключении к бд, вынесите файл .env на один уровень с папкой src, то есть он должен лежать не в папке src, а на одном уровне с ней

  • @qlmanlp
    @qlmanlp Жыл бұрын

    Мужик, не знаю как тебя зовут, очень благодарен за объяснение связей. По доке TypeORM я уже задолбался искать про то как добавить колонку foreign key и как сделать так чтобы была связь между табличками, очень благодарен

  • @lets_try_js

    @lets_try_js

    Жыл бұрын

    успехов))

  • @SergiySev

    @SergiySev

    6 ай бұрын

    зачем юзать typeorm в 2023? это ужасная либа которая даже db pull/push не умеет? primsa/drizzle!

  • @qlmanlp

    @qlmanlp

    6 ай бұрын

    @@SergiySev а нафига ты смотришь видео про тайпорм, раз это говно?

  • @Virisound
    @Virisound11 ай бұрын

    33:20 - Все никак не пойму: почему в Dbeaver - при @OneToMany, не показывает колонки. Что в user нет колонок 'categories' и 'transactions', что в category - нет колонки "transactions"? Типа, реляционные базы данных не рассчитаны укладывать (показывать) массив в одном столбце (например: categories: Category[ ] )? Но что мешает, просто показать столбец с указанием на ToMany, типа столбец 'category': ToMany?

  • @user-ql7vi6mu3q
    @user-ql7vi6mu3q Жыл бұрын

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

  • @max_cr_it
    @max_cr_it10 ай бұрын

    А всегда ли используют ОРМ или есть практики без него? Мне например удобнее для небольшого приложения свои запросы составить и все

  • @lets_try_js

    @lets_try_js

    10 ай бұрын

    Ну с ним гораздо проще )

  • @workacc
    @workacc Жыл бұрын

    Знакомый материал, не так давно прошла обучение

  • @alexanderdiakonov1340
    @alexanderdiakonov134010 ай бұрын

    Включаю ПГ АДмин на маке, нельзя создать базу данных- кидает ошибку, пришлось бежать аз помощью к другу ранить через докер это говно.

  • @DubinArtur
    @DubinArtur4 ай бұрын

    Что лучше? Секвалайз или тайпорм?

  • @user-nb6ns8gp3b
    @user-nb6ns8gp3b5 ай бұрын

    Для тех кто писал хоть раз на MERN это должно быть вполне понятно, хоть и новый синтаксис

  • @kharisovruslan5523
    @kharisovruslan55236 ай бұрын

    Помогла дока сайта TypeORM, но важно разобраться до конца, что будет происходить если что либо удалить. Каскадное удаление, null и т.д. Не легкая тема)))

  • @lets_try_js

    @lets_try_js

    6 ай бұрын

    То что тема не легкая это да

  • @kirillmalko1486
    @kirillmalko14865 ай бұрын

    Подскажи пожалуйста, почему выкидывается такая ошибка. [Nest] 21560 - 01/17/2024, 10:11:42 AM ERROR [TypeOrmModule] Unable to connect to the database. Retrying (1)... как это можно пофиксить?

  • @kirillmalko1486

    @kirillmalko1486

    5 ай бұрын

    решил эту поблему так: TypeOrmModule.forRootAsync({ useFactory: () => { return { type: 'postgres', host: 'localhost', port: 5432, username: 'postgres', password: '1234', database: 'name', entities: [__dirname + '/**/*.entity{.ts,.js}'], synchronize: true, } as TypeOrmModuleOptions; }, }), //немного изменил код и явно указал в модуле наши данные

  • @lets_try_js

    @lets_try_js

    5 ай бұрын

    @@kirillmalko1486 для тренировок пойдет, но лучше разобраться как подключать конфиг и использовать env

  • @trade2082
    @trade2082 Жыл бұрын

    Автор, дорогой, всё делал как у тебя в entitiy, но решил протестировать удаление, в итоге вышла такая ошибка "QueryFailedError: UPDATE или DELETE в таблице "sections" нарушает ограничение внешнего ключа "FK_1a6940588b5eb415a820d6f53f8" таблицы "products"", поиск информации в интернете не дал результатов, help!🙏

  • @lets_try_js

    @lets_try_js

    Жыл бұрын

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

  • @lets_try_js

    @lets_try_js

    Жыл бұрын

    еще один из вариантов, это если тот элемент который хотите удалить ссылается на другую таблицу и другая таблица не понимает что с этим делать) не знаю как это объяснить в двух словах но почитайте про onDelete в typeorm когда прописывали связи между таблицами

  • @trade2082

    @trade2082

    Жыл бұрын

    @@lets_try_js хорошо, благодарю за ответ

  • @aleksandrkis7408

    @aleksandrkis7408

    Жыл бұрын

    @@trade2082 подскажите пожалуйста как вы решили эту проблему?

  • @olexandravoloshyna
    @olexandravoloshyna3 ай бұрын

    не могу подключится к базе ERROR [TypeOrmModule] Unable to connect to the database. Retrying (1)... error: password authentication failed for user "postgres"

  • @geloszotack5434

    @geloszotack5434

    2 ай бұрын

    Не нашлась проблема?

  • @olexandravoloshyna

    @olexandravoloshyna

    2 ай бұрын

    Нет(

  • @pablo8896
    @pablo88967 ай бұрын

    в кого не спрацював [__dirname + '/**/*/.entity{.js, .ts}'] раджу зробити так: ``` import { join } from 'path'; entities: [join(process.cwd(), 'dist/**/*.entity{.ts,.js}')], ```

  • @lets_try_js

    @lets_try_js

    7 ай бұрын

    Не зовсім коректно здається у цьому випадку брати папку dist, краще працювати з src

  • @kennyvision5789
    @kennyvision578910 ай бұрын

    Собрал проект на смартфоне в программе Acode через терминал Termux. Ошибок нет, но в PostgreSQL клиенте выводит ошибку: Подсоединение по адресу localhost:5432 отклонено. Проверьте что хост и порт указаны правильно и что postmaster принимает TCP/IP-подсоединения.

  • @kennyvision5789

    @kennyvision5789

    10 ай бұрын

    Попробую на ноутбуке сделать, возможно там все будет норм.

  • @lets_try_js

    @lets_try_js

    10 ай бұрын

    @@kennyvision5789 жестко)) я б таким никогда не занимался на телефоне

  • @kennyvision5789

    @kennyvision5789

    10 ай бұрын

    Нашел причину. import {Column, Entity, PrimaryGeneratedColumn, CreateDateColumn, UpdateDateColumn} from '@nestjs/typeorm' А надо from 'typeorm'

  • @lets_try_js

    @lets_try_js

    10 ай бұрын

    @@kennyvision5789 и такое бывает)))

  • @yevheniimoskalenko1624
    @yevheniimoskalenko16247 ай бұрын

    Супер, можеш підказати, роблю зв'язки між таблицями. Інколи при запиті на роут очищає зв'язки між таблицями. Не розумію чому так... підкажи будь ласка)

  • @lets_try_js

    @lets_try_js

    7 ай бұрын

    Дуже дивна проблема, не розумію як це може працювати

  • @user-wl7ki4xz4m
    @user-wl7ki4xz4m11 ай бұрын

    миграция где?

  • @isephar
    @isephar11 ай бұрын

    я один отвалился на этом видосе и не могу подрубить постгрес?)

  • @TheBaltsaros

    @TheBaltsaros

    11 ай бұрын

    В чём у тебя проблема? Я на Убунту смог всё подключить

  • @SergiySev
    @SergiySev6 ай бұрын

    но зачем react мешать с nestjs?

  • @lets_try_js

    @lets_try_js

    6 ай бұрын

    для чего используют реакт?

  • @user-xu4ob9pg7e
    @user-xu4ob9pg7e10 ай бұрын

    VS намного хуже отрабатывает импорты, если сравнит с WS

  • @lets_try_js

    @lets_try_js

    10 ай бұрын

    Однозначно )

  • @094artik
    @094artik7 ай бұрын

    ничего не отображается в базе данных

  • @lets_try_js

    @lets_try_js

    7 ай бұрын

    так она еще пустая, конечно не отображается)

  • @094artik

    @094artik

    7 ай бұрын

    я имею ввиду что в DBeaver не показывает user, transactions и т.п.@@lets_try_js

  • @lets_try_js

    @lets_try_js

    7 ай бұрын

    @@094artik entity создали?

  • @094artik

    @094artik

    7 ай бұрын

    @@lets_try_js да, все создано как на видео, базу данных budget видит, но эти поля в ней не создаются, с импортами тоже все в порядке

  • @Pavlenko_M_
    @Pavlenko_M_10 ай бұрын

    Это было круто, спасибо) Я наконец понял эти фишки с @OneToMany и @ManyToOne, и к концу видео уже сам смог понять какие связи надо делать в трансакциях и категориях, что бы их связать!

  • @lets_try_js

    @lets_try_js

    10 ай бұрын

    вот это четкий подход)

  • @shutuppls
    @shutuppls3 ай бұрын

    {"message":"Cannot GET /","error":"Not Found","statusCode":404} вот такая ошибка после запуска. Никто не сталкивался?

Келесі