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