Пратите овај водич да бисте сазнали о неким узбудљивим, комплементарним технологијама које можете користити за свој следећи пројекат.
Као и други Ноде.јс оквири, Нест.јс пружа свеобухватан комплет алата за изградњу робусних и скалабилних позадинских услуга. Без обзира на то, важно је разумети како имплементирати креирање, читање, ажурирање и брисање (ЦРУД) операције у Нест.јс ефикасно—ово су најосновније операције у развоју АПИ-ја.
Научите како да направите Нест.јс ЦРУД РЕСТ АПИ користећи ТипеОРМ и ПостгреСКЛ базу података.
Први кораци са Нест.јс
Да бисте започели, инсталирајте Нест.јс алатку командне линије:
нпм и -г @нестјс/цли
Затим креирајте нови пројекат тако што ћете покренути:
гнездите нову цруд-апликацију
ЦЛИ алат ће од вас затражити да одаберете менаџера пакета, изаберите опцију која вам је најпожељнија. Користићемо нпм, менаџер пакета Ноде.
ЦЛИ ће повезати основни Нест.јс пројекат са свим потребним конфигурационим датотекама и почетним зависностима потребним за покретање апликације.
На крају, идите до директоријума пројекта и покрените развојни сервер.
цд цруд-апп
нпм рун старт
Код овог пројекта можете пронаћи у њему ГитХуб репозиторијум.
Направите ПостгреСКЛ базу података
Овај водич користи инстанцу ПостгреСКЛ у облаку, али уместо тога можете подесити локалну ПостгреСКЛ базу података. Можете инсталирајте ПостгреСКЛ на Виндовс, на мацОС-у, или на Линук-у.
Да бисте подесили инстанцу ПостгреСКЛ у облаку:
- Пређите на ЕлепхантСКЛ, региструјте се и пријавите се на страницу са прегледом свог налога.
- Кликните Креирајте нову инстанцу дугме у горњем левом делу странице да бисте креирали нову инстанцу за своју апликацију.
- Унесите назив своје инстанце, изаберите бесплатни план и на крају изаберите регион да бисте довршили процес подешавања.
- Након креирања инстанце базе података, идите на подешавања страницу и копирајте приложену УРЛ базе података.
Конфигуришите везу са базом података
У основном директоријуму вашег пројекта креирајте а .енв датотеку и налепите УРЛ везе са базом података на следећи начин:
ДАТАБАСЕ_УРЛ=""
Сада инсталирајте ове пакете:
нпм инсталл пг типеорм @нестјс/типеорм @нестјс/цонфиг
Затим, наставите и креирајте модул базе података користећи ЦЛИ алат.
нест г модул базе података
Отвори база података/датабасе.модуле.тс датотеку и додајте следећи конфигурациони код базе података:
увоз { Модул } из'@нестјс/цоммон';
увоз { ЦонфигМодуле, ЦонфигСервице } из'@нестјс/цонфиг';
увоз { ТипеОрмМодуле } из'@нестјс/типеорм';
увоз { Усер } из'../усерс/моделс/усер.ентити';@Модуле({
увози: [
ТипеОрмМодуле.форРоотАсинц({
увози: [ЦонфигМодуле],
убацити: [ЦонфигСервице],усеФацтори: асинц (цонфигСервице: ЦонфигСервице) => ({
тип: 'постгрес',
урл: цонфигСервице.гет('ДАТАБАСЕ_УРЛ'),
ентитети: [Корисник],
синхронизовати: истина
}),
}),
],
})
извозкласа ДатабасеМодуле {}
Овај модул базе података управља везом тако што конфигурише модул ТипеОРМ са потребним параметром везе, УРЛ-ом базе података.
Поред тога, дефинише ентитет Усер као део конфигурације која специфицира структуру и својства података ускладиштених у табели базе података ПостгреСКЛ.
У овој фази, ваш код ће вероватно избацити грешку јер још увек нисте креирали ентитет корисника. То ћете урадити у следећим корацима.
Ажурирајте датотеку апп.модуле.тс
На крају, ажурирајте главни модул апликације да бисте укључили конфигурацију за модул базе података.
увоз { Модул } из'@нестјс/цоммон';
увоз { ЦонфигМодуле } из'@нестјс/цонфиг';
увоз { АппЦонтроллер } из'./апп.цонтроллер';
увоз { АппСервице } из'./апп.сервице';
увоз { ДатабасеМодуле } из'./датабасе/датабасе.модуле';@Модуле({
увози: [
ЦонфигМодуле.форРоот({
енвФилеПатх: '.енв',
}),
ДатабасеМодуле,
],контролери: [АппЦонтроллер],
провајдери: [АппСервице],
})
извозкласа АппМодуле {}
Дефинишите кориснички модул
Кориснички модул служи као централизована компонента, одговорна за капсулирање и управљање логиком потребном за имплементацију ЦРУД функционалности АПИ-ја.
Покрените ову наредбу терминала да креирате кориснички модул АПИ-ја.
корисници нест г модула
ЦЛИ алатка аутоматски ажурира апп.модуле.тс датотеку која одражава направљене промене, поред креирања корисничког модула. Ово осигурава да је новокреирани модул, корисници, правилно интегрисан у конфигурацију модула апликације.
Креирајте кориснички ентитет
ТипеОРМ је библиотека објектно-релационог мапирања (ОРМ) која поједностављује интеракције базе података у апликацијама које користе ТипеСцрипт мапирањем ЈаваСцрипт објеката у табеле базе података.
Креирањем ентитета Усер користећи ТипеОРМ, дефинишете структуру и својства корисничких података у ПостгреСКЛ бази података.
У директоријуму корисника креирајте нови модели/усер.ентити.тс и додајте следећи код.
увоз { Ентитет, примарни генерисани колона, колона, } из"типеорм";
@Ентити()
извозкласа Корисник {
@ПримариГенератедЦолумн()
ид: број;@Цолумн()
име: низ;
@Цолумн()
емаил: низ;
}
Тхе Корисник ентитет дефинише структуру корисничких података ускладиштених у бази података. У овом случају, то је ид као колону примарног кључа, и име и емаил колоне и њихова одговарајућа својства.
Креирајте ЦРУД АПИ услугу
Сада креирајте АПИ услугу која ће управљати логиком за ЦРУД операције тако што ћете покренути наредбу испод:
корисници нест г услуга
Отвори усер-аутх.сервице.тс датотеку и додајте овај код:
увоз { Ињекционо} из'@нестјс/цоммон';
увоз { ИњецтРепоситори } из'@нестјс/типеорм';
увоз { Репозиторијум } из'типеорм';
увоз {Корисник} из'./моделс/усер.ентити';@Ињецтабле()
извозкласа УсерсСервице {
конструктор(
@ИњецтРепоситори(Корисник)
приватни усерРепоситори: Репозиторијум,
) {}асинц финдАлл(): Обећавам
{
повратаково.усерРепоситори.финд();
}асинц финдОне (ид: број): Обећавам
{
повратаково.усерРепоситори.финдОне({ где: { ид } });
}асинц креирати (корисник: Делимично
): Обећавам {
конст невусер = ово.усерРепоситори.цреате (корисник);
повратаково.усерРепоситори.саве (невусер);
}асинц ажурирање (ид: број, корисник: Делимично
): Обећавам {
чекатиово.усерРепоситори.упдате (ид, корисник);
повратаково.усерРепоситори.финдОне({ где: { ид } });
}
асинцизбрисати(ид: број): Обећавам<празнина> {
чекатиово.усерРепоситори.делете (ид);
}
}
Ова класа УсерсСервице дефинише различите АПИ методе намењене руковању ЦРУД операцијама. Ове методе укључују преузимање података свих корисника, проналажење одређеног корисника помоћу његовог ИД броја, креирање новог корисника, ажурирање постојећег корисника и метод за брисање података одређеног корисника у бази података.
Дефинишите контролер за АПИ
Креирајте контролер који ће управљати крајњим тачкама АПИ-ја за операције које се односе на кориснике.
корисници нест г контролера
Затим додајте код испод у усерс.цонтроллер.тс фајл.
увоз { Цонтроллер, Гет, Пост, Боди, Пут, Парам, Делете, НотФоундЕкцептион, ХттпЦоде } из'@нестјс/цоммон';
увоз { УсерсСервице } из'./усерс.сервице';
увоз { Усер } из'./моделс/усер.ентити';@Цонтроллер('апи/корисници')
извозкласа УсерсЦонтроллер {
конструктор(приватни реадонли усерсСервице: УсерсСервице) {}@Добити()
асинц финдАлл(): Обећавам{
повратаково.усерсСервице.финдАлл();
}@Пошта()
@ХттпЦоде(201)
асинц Креирај(@Боди() корисник: Корисник): Обећавам{
конст цреатедУсер = чекатиово.усерсСервице.цреате (корисник);
повратак цреатедУсер;
}@Ставити(':ид')
асинц ажурирање (@Парам('ид') ид: број, @Боди() корисник: Корисник): Обећавам<било који> {
чекатиово.усерсСервице.упдате (ид, корисник);
повратак { порука: „Корисник је успешно ажуриран“ };
}@Делете(':ид')
асинцизбрисати(@Парам('ид') ид: број): Обећавам<било који> {
конст корисник = чекатиово.усерсСервице.финдОне (ид);ако (!корисник) {
бацитиНова НотФоундЕкцептион('Корисник не постоји!');
}
чекатиово.усерсСервице.делете (ид);
повратак { порука: „Корисник је успешно обрисан“ };
}
}
Контролер управља крајњим тачкама АПИ-ја за корисничке операције. Обрађује ГЕТ захтеве за преузимање свих корисника, ПОСТ захтеве за креирање нових корисника, ПУТ захтеве за ажурирање постојећих корисника и ДЕЛЕТЕ захтеве за брисање корисника.
Коришћењем УсерсСервице и интеракцију са Корисник ентитета, овај контролер обезбеђује комплетан АПИ за управљање операцијама које се односе на кориснике на подацима ускладиштеним у бази података.
Ажурирајте датотеку усерс.модуле.тс
На крају, ажурирајте усерс.модуле.тс датотеку као што је приказано у наставку како бисте били сигурни да сте уградили Кориснички ентитет и модул ТипеОРМ, који успоставља везу са базом података.
увоз { Модул } из'@нестјс/цоммон';
увоз { УсерсЦонтроллер } из'./усерс.цонтроллер';
увоз { УсерсСервице } из'./усерс.сервице';
увоз { ТипеОрмМодуле } из'@нестјс/типеорм';
увоз { Усер } из'./моделс/усер.ентити';@Модуле({
увози: [ТипеОрмМодуле.форФеатуре([Корисник])],
контролери: [УсерсЦонтроллер],
добављачи: [УсерсСервице]
})
извозкласа УсерсМодуле {}
Коначно, наставите и покрените развојни сервер да бисте тестирали ЦРУД операције користећи Постман.
нпм рун старт
Сервер ће се покренути на порту 3000 и можете му послати АПИ захтеве на http://localhost: 3000/апи/корисника.
Израда позадинских апликација помоћу Нест.јс
Без обзира да ли развијате једноставан РЕСТ АПИ или сложену веб апликацију, Нест.јс нуди свеобухватан скуп функција и могућности за конструисање поузданог и робусног позадинског система.
Нест.јс нуди структуриранији приступ развоју пројекта него Екпресс.јс. Ово осигурава да можете поуздано да правите, скалирате и одржавате сложене апликације, захваљујући организованом и модуларном обрасцу дизајна.