Подключаем базу данных 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
04/16.Подключаем базу данных PostgreSQL + TypeORM. Настраиваем связь между таблицами. Ролики будут выходить я думаю примерно раз в 2-4 дня. Надеюсь на вашу поддержку :)
Сложно. Сначала было разобраться сложно. Но когда сам подобные действия проделал со своими таблицами, то все встало на свои места, и стало супер понятно. Спасибо за подробные уроки!!!
@lets_try_js
5 ай бұрын
отличный подход)
Молодец, стараешься объяснить - даже я пень, понимаю. И еще подбадриваешь, это тоже круто.
Чувак с юморком))) - "чуть сложнее", "еще сложнее" - Коммент в поддержку: sfsdfsdfsdfsdfsdf вапываыва вавы eddddr4 6jm
@lets_try_js
Жыл бұрын
потому что сложная тема))))
Спасибо большое за уроки! Очень подробно и ясно объясняешь!!!!
@lets_try_js
Жыл бұрын
благодарю)
Спасибо большое за уроки!
Спасибо, ультра полезно Без базовых знаний по SQL думаю было совсем непонятно (по крайней мере мне), но с ними ок
Очень классно объяснил. Это лучшее объяснение что я нашел в инете) Мне стало понятно много моментов которые я просто копировал не понимая что делаю. Теперь стало горазда лучше)
@lets_try_js
Жыл бұрын
круто)
С нетерпением жду продолжения
@lets_try_js
Жыл бұрын
завтра уже интересный ролик будет)
@TravinskiyVladislav
Жыл бұрын
@@lets_try_js Заметил одну интересную фишку: при создании с помощью nest g resource при написании названия во множественном числе - он делает название entity в единственном. например Users - user может это значит, что домен надо называть во множественном числе?
@lets_try_js
Жыл бұрын
@@TravinskiyVladislav вообще по хорошему да, мой косяк лучше во множественном
Огромное человеческое спасибо
оч классные уроки, хорошо объясняешь)
@lets_try_js
6 ай бұрын
старался как можно проще что б было)
Для всех кто интересуется, простыми словами, декоратор - класс или зачастую метод, который оборачивает сущность и добавляет ей новую функциональность. Декоратор является паттерном проектирования
@SergiySev
6 ай бұрын
декоратор это антипатерн за который надо бить линейкой по пальцам
@mihaylov13
Ай бұрын
@@SergiySev почему? 😊
Большое спасибо за курс и за то, что продолжаешь делать видео на русском, несмотря на войну (надеюсь, что весь этот ад скоро закончится и война обойдёт тебя стороной). Очень крутой курс! Удачи тебе!
Пошли приятные темы, благодарю
@lets_try_js
Жыл бұрын
ну в разработке от неприятных тем не уйти)) на каждом этапе есть что-то такое, что не нравится делать, но без этого никак )
@TravinskiyVladislav
Жыл бұрын
@@lets_try_js знаем) Ну я по официальной документации обучаюсь, а Ваши уроки - приятный бонус 😊
@lets_try_js
Жыл бұрын
@@TravinskiyVladislav мне тоже нравится такой подход) и документация у неста очень крутая тоже)
Спасибо за твой труд
Поддерживаю автора, несмотря на "эээм..." и прочие паузы, повествование на отличном уровне. Всё предельно ясно и понятно. Автор, не останавливайся. Всё огонь
@lets_try_js
9 ай бұрын
от "'эммм" никуда не деться, так как я записываю все оним дублем) без скриптов и прочего. сел и пишу
@pablo8896
2 ай бұрын
@@lets_try_js но это не плюс, скорее минус
@lets_try_js
2 ай бұрын
@@pablo8896 для кого как. для меня плюс
@pablo8896
2 ай бұрын
@@lets_try_js ну тогда круто👍🏿
Спасибо за урок
дякую !
Спасибо)
спасибо!
Класс!!
16:06 - протистояння React і Angular вирішилось!) Прийшов Nestjs і Vuejs! І Реакт розробникам довелось вивчати абстракції, які знають усі Angular розробники 🤭
Настройка конечно всего этого ад, с энтити все более менее понятно. Хорошо объясняешь, продолжай в том же духе.
@lets_try_js
Жыл бұрын
Благодарю )
Спасибо за уроки! Есть вопрос, можно ли использовать "autoLoadEntities: true" вместо "entity: [__dirname + "/**/*entity{.ts,.js}]" внутри конфига typeorm?
spasibo
сколько лет опыта у автора канала? огромная благодарность за курс..
@lets_try_js
7 ай бұрын
Смотря какие технологии. В целом лет 5
у кого ошибка при подключении к бд, вынесите файл .env на один уровень с папкой src, то есть он должен лежать не в папке src, а на одном уровне с ней
Мужик, не знаю как тебя зовут, очень благодарен за объяснение связей. По доке TypeORM я уже задолбался искать про то как добавить колонку foreign key и как сделать так чтобы была связь между табличками, очень благодарен
@lets_try_js
Жыл бұрын
успехов))
@SergiySev
6 ай бұрын
зачем юзать typeorm в 2023? это ужасная либа которая даже db pull/push не умеет? primsa/drizzle!
@qlmanlp
6 ай бұрын
@@SergiySev а нафига ты смотришь видео про тайпорм, раз это говно?
33:20 - Все никак не пойму: почему в Dbeaver - при @OneToMany, не показывает колонки. Что в user нет колонок 'categories' и 'transactions', что в category - нет колонки "transactions"? Типа, реляционные базы данных не рассчитаны укладывать (показывать) массив в одном столбце (например: categories: Category[ ] )? Но что мешает, просто показать столбец с указанием на ToMany, типа столбец 'category': ToMany?
Ссылка на исходники не работает(
А всегда ли используют ОРМ или есть практики без него? Мне например удобнее для небольшого приложения свои запросы составить и все
@lets_try_js
10 ай бұрын
Ну с ним гораздо проще )
Знакомый материал, не так давно прошла обучение
Включаю ПГ АДмин на маке, нельзя создать базу данных- кидает ошибку, пришлось бежать аз помощью к другу ранить через докер это говно.
Что лучше? Секвалайз или тайпорм?
Для тех кто писал хоть раз на MERN это должно быть вполне понятно, хоть и новый синтаксис
Помогла дока сайта TypeORM, но важно разобраться до конца, что будет происходить если что либо удалить. Каскадное удаление, null и т.д. Не легкая тема)))
@lets_try_js
6 ай бұрын
То что тема не легкая это да
Подскажи пожалуйста, почему выкидывается такая ошибка. [Nest] 21560 - 01/17/2024, 10:11:42 AM ERROR [TypeOrmModule] Unable to connect to the database. Retrying (1)... как это можно пофиксить?
@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
5 ай бұрын
@@kirillmalko1486 для тренировок пойдет, но лучше разобраться как подключать конфиг и использовать env
Автор, дорогой, всё делал как у тебя в entitiy, но решил протестировать удаление, в итоге вышла такая ошибка "QueryFailedError: UPDATE или DELETE в таблице "sections" нарушает ограничение внешнего ключа "FK_1a6940588b5eb415a820d6f53f8" таблицы "products"", поиск информации в интернете не дал результатов, help!🙏
@lets_try_js
Жыл бұрын
ну так сложно сказать ) я ж не знаю что там за код в сервисах на удаление) причин может быть много
@lets_try_js
Жыл бұрын
еще один из вариантов, это если тот элемент который хотите удалить ссылается на другую таблицу и другая таблица не понимает что с этим делать) не знаю как это объяснить в двух словах но почитайте про onDelete в typeorm когда прописывали связи между таблицами
@trade2082
Жыл бұрын
@@lets_try_js хорошо, благодарю за ответ
@aleksandrkis7408
Жыл бұрын
@@trade2082 подскажите пожалуйста как вы решили эту проблему?
не могу подключится к базе ERROR [TypeOrmModule] Unable to connect to the database. Retrying (1)... error: password authentication failed for user "postgres"
@geloszotack5434
2 ай бұрын
Не нашлась проблема?
@olexandravoloshyna
2 ай бұрын
Нет(
в кого не спрацював [__dirname + '/**/*/.entity{.js, .ts}'] раджу зробити так: ``` import { join } from 'path'; entities: [join(process.cwd(), 'dist/**/*.entity{.ts,.js}')], ```
@lets_try_js
7 ай бұрын
Не зовсім коректно здається у цьому випадку брати папку dist, краще працювати з src
Собрал проект на смартфоне в программе Acode через терминал Termux. Ошибок нет, но в PostgreSQL клиенте выводит ошибку: Подсоединение по адресу localhost:5432 отклонено. Проверьте что хост и порт указаны правильно и что postmaster принимает TCP/IP-подсоединения.
@kennyvision5789
10 ай бұрын
Попробую на ноутбуке сделать, возможно там все будет норм.
@lets_try_js
10 ай бұрын
@@kennyvision5789 жестко)) я б таким никогда не занимался на телефоне
@kennyvision5789
10 ай бұрын
Нашел причину. import {Column, Entity, PrimaryGeneratedColumn, CreateDateColumn, UpdateDateColumn} from '@nestjs/typeorm' А надо from 'typeorm'
@lets_try_js
10 ай бұрын
@@kennyvision5789 и такое бывает)))
Супер, можеш підказати, роблю зв'язки між таблицями. Інколи при запиті на роут очищає зв'язки між таблицями. Не розумію чому так... підкажи будь ласка)
@lets_try_js
7 ай бұрын
Дуже дивна проблема, не розумію як це може працювати
миграция где?
я один отвалился на этом видосе и не могу подрубить постгрес?)
@TheBaltsaros
11 ай бұрын
В чём у тебя проблема? Я на Убунту смог всё подключить
но зачем react мешать с nestjs?
@lets_try_js
6 ай бұрын
для чего используют реакт?
VS намного хуже отрабатывает импорты, если сравнит с WS
@lets_try_js
10 ай бұрын
Однозначно )
ничего не отображается в базе данных
@lets_try_js
7 ай бұрын
так она еще пустая, конечно не отображается)
@094artik
7 ай бұрын
я имею ввиду что в DBeaver не показывает user, transactions и т.п.@@lets_try_js
@lets_try_js
7 ай бұрын
@@094artik entity создали?
@094artik
7 ай бұрын
@@lets_try_js да, все создано как на видео, базу данных budget видит, но эти поля в ней не создаются, с импортами тоже все в порядке
Это было круто, спасибо) Я наконец понял эти фишки с @OneToMany и @ManyToOne, и к концу видео уже сам смог понять какие связи надо делать в трансакциях и категориях, что бы их связать!
@lets_try_js
10 ай бұрын
вот это четкий подход)
{"message":"Cannot GET /","error":"Not Found","statusCode":404} вот такая ошибка после запуска. Никто не сталкивался?