ЦРУД АПИ управља подацима кроз четири основне операције базе података: креирање, читање, ажурирање и брисање. Можете креирати једноставан ЦРУД АПИ само са Екпресс и ПостгреСКЛ базом података.
Почните тако што ћете креирати Екпресс сервер на који ћете повезати ПостгреСКЛ. Затим креирајте ЦРУД функције и повежите их са крајњим тачкама АПИ-ја. Када то урадите, моћи ћете да повежете Ноде са ПостгреСКЛ-ом и извршите упите базе података на свакој рути.
Предуслови за прављење АПИ-ја
Да бисте пратили овај водич, требало би да:
- Инсталирајте Ноде на вашој машини.
- Инсталирајте ПостгреСКЛ сервер на своју машину.
- Имати основно знање о Екпресс.јс.
Креирајте експрес сервер
До креирајте експрес сервер, почните тако што ћете креирати нови директоријум и унети га:
мкдир нотес
цд белешке
Затим иницијализујте нпм:
нпм инит -и
Ова команда ће генерисати а пацкаге.јсон датотеку у фасцикли са белешкама. На крају, инсталирајте Екпресс.
нпм инсталирај изразити
Креирајте нову датотеку под називом индек.јс и додајте следећи код.
конст екпресс = захтевају("изразити");
конст апп = екпресс();апликација.усе(изразити.урленцодед({
продужено: истинито
}));
апликација.усе(изразити.јсон())
апп.листен (3000, () => цонсоле.лог("Слушање на порту 3000"));
Ово ће креирати нови сервер који слуша на порту 3000.
Направите ПостгреСКЛ базу података
Извршите следећу команду у командној линији пскл да бисте креирали ПостгреСКЛ базу података под називом нотедб.
постгрес=# ЦРЕАТЕ ДАТАБАСЕ нотедб;
Покрените ову команду за навести све Постгрес базе података и проверите да ли сте креирали нотедб базу података:
постгрес=# \л
Повежите се са базом података
Идемо редом, повежите своју Ноде апликацију са ПостгреСКЛ сервером. Можете користити модул ноде-Постгрес.
Покрените следеће да бисте га инсталирали преко нпм-а:
нпм инсталирај стр
Као добра пракса, повежите се са базом података у посебној датотеци.
Креирајте нову датотеку под називом дб.јс и додати следеће.
конст {Клијент} = захтевају("пг");
конст { корисник, хост, база података, лозинка, порт } = захтевају("./дбЦонфиг");конст клијент = Нова Клијент({
корисник,
домаћин,
база података,
Лозинка,
Лука,
});
клијент.цоннецт();
модул.извоза = клијент;
Овде извозите низ везе који ћете користити за комуникацију са базом података. Имајте на уму да читате подешавања везе са базом података из конфигурационе датотеке под називом дбЦонфиг.јс. Стога, креирајте дбЦонфиг.јс и додајте му следеће податке.
модул.извоза = {
корисник: "{дбУсер}",
домаћин: "{дбХост}",
база података: "нотедб",
Лозинка: "{дбПассворд}",
порт: 5432,
};
Не заборавите да замените детаље базе података сопственим локалним вредностима.
Направите ПостгреСКЛ табелу
У командној линији пскл креирајте табелу под називом белешке. За почетак, повежите се са нотедб базом података помоћу команде \ц.
постгрес=# \ц нотедб
Затим креирајте табелу у повезаној бази података помоћу команде ЦРЕАТЕ ТАБЛЕ.
нотедб=# НАПРАВИТЕ ТАБЛЕ белешке (
ИД СЕРИЈСКИ ПРИМАРНИ КЉУЧ,
напомена ВАРЦХАР(255)
);
Ова табела је прилично једноставна. Има само ИД који је аутоматски генерисани примарни кључ и текстуално поље које се зове белешка.
Направите белешку
Уместо да извршавате ЦРУД операције у рутама, креирајте функције које ће комуницирати са базом података у посебној датотеци.
Направите помоћну датотеку под називом хелпер.јс и увезите објекат везе из дб.јс.
конст клијент = захтевају("./дб");
Користите следећи код да креирате функцију цреатеНоте().
конст цреатеНоте = (рек, рес) => {
покушати {
конст { ноте } = рек.боди;ако (!напомена) {
бацитиГрешка(„Пошаљи белешку ин тело захтева“);
}
клијент.куери(
"ИНСЕРТУ белешке (напомена) ВРЕДНОСТИ ($1)",
[Белешка],
(грешка, подаци) => {
рес.статус(201).јсон({
грешка: нула,
порука: "Направљена нова белешка",
});
}
);
} улов (грешка) {
рес.статус(500).јсон({
грешка: грешка.мессаге,
порука: „Неуспешно КреирајНова Белешка",
});
}
};
Ова функција прво проверава да ли је тело захтева укључило белешку. Ако је белешка одсутна, јавља се грешка.
За креирање белешке, функција користи клаузулу ИНСЕРТ. Враћа ЈСОН објекат који садржи нулту поруку о грешци и поруку о успеху ако је успешан.
Преузмите све белешке
Да бисте добили све белешке из табеле, користите клаузулу СЕЛЕЦТ *.
конст гетНотес = (рек, рес) => {
покушати {
цлиент.куери("СЕЛЕЦТ * ФРОМ нотес", (ерр, дата) => {
ако (ерр) бацити ерр;
рес.статус(200).јсон({
грешка: нула,
белешке: података.ровс,
});
});
} улов (грешка) {
рес.статус(500).јсон({
ерр: грешка.мессаге,
напомене: нула,
});
}
};
гетНотес() шаље низ белешки у објекту одговора ако је упит успешан.
Набавите белешку по ИД-у
АПИ ће такође имати крајњу тачку која враћа белешку по ИД-у. У хелпер.јс додајте функцију гетНотеБиИд().
конст гетНотеБиИд = (рек, рес) => {
покушати {
конст { ид } = рек.парамс;
цлиент.куери("СЕЛЕЦТ * ФРОМ нотес ВХЕРЕ ид=$1", [ид], (ерр, дата) => {
ако (ерр) бацити ерр;
рес.статус(200).јсон({
грешка: нула,
Белешка: података.ровс[0],
});
});
} улов (грешка) {
рес.статус(500).јсон({
ерр: ерр.мессаге,
Белешка: нула,
});
}
};
Ова функција ће вратити ЈСОН објекат који садржи белешку и објекат грешке.
Ажурирајте белешку према ИД-у
Да бисте ажурирали белешку, потребна вам је белешка и ИД те белешке. Добићете белешку из тела захтева, а ИД са УРЛ-а.
Функција упдатеНотеБиИд() користи клаузулу УПДАТЕ да ажурира постојећу белешку новом белешком.
конст упдатеНотеБиИд = (рек, рес) => {
покушати {
конст { ид } = рек.парамс;
конст { ноте } = рек.боди;
клијент.куери(
"АЖУРИРАЊЕ белешке КОМПЛЕТ напомена = $1ГДЕид = $2",
[напомена, ид],
(грешка, подаци) => {
ако (ерр) бацити ерр;
рес.статус(201).јсон({
грешка: нула,
порука: "Ажурирана белешка",
});
}
);
} улов (грешка) {
рес.статус(500).јсон({
ерр: грешка.мессаге,
порука: "Ажурирање белешке није успело",
});
}
};
Ова функција враћа поруку о успеху ако је табела ажурирана и поруку о грешци ако није.
Избриши белешку по ИД-у
Да бисте избрисали белешку по ИД-у из табеле, користите следећи код.
конст делетеНоте = (рек, рес) => {
покушати {
конст { ид } = рек.парамс;
цлиент.куери("ИЗБРИШИ ИЗ белешки ВХЕРЕ ид=$1", [ид], (ерр, дата) => {
ако (ерр) бацити ерр;
рес.статус(200).јсон({
грешка: нула,
порука: "Напомена је избрисана",
});
});
} улов (грешка) {
рес.статус(500).јсон({
грешка: грешка.мессаге,
порука: "Брисање белешке није успело",
});
}
};
Сада када сте креирали све ЦРУД функције, извезите их.
У хелпер.јс додајте следеће.
модул.извоза = { цреатеНоте, гетНотес, гетНотеБиИд, упдатеНотеБиИд, делетеНоте };
Увезићете их индек.јс приликом креирања крајњих тачака АПИ-ја.
Креирајте АПИ руте
Последњи корак је креирање АПИ крајњих тачака у индек.јс за сваку од ЦРУД операција.
Започните увозом датотеке хелпер.јс.
конст дб = захтевају("./помоћник")
Затим креирајте сваку крајњу тачку.
апп.гет("/notes", дб.гетНотес);
апп.гет("/note/:id", дб.гетНотеБиИд);
апп.пут("/note/:id", дб.упдатеНотеБиИд);
апп.пост("/note", дб.цреатеНоте);
апп.делете("/note/:id", дб.делетеНоте);
РЕСТ АПИ за ажурирање ваше базе података
Када завршите, можете да проверите да ли ваш АПИ ради користећи РЕСТ клијент као што је Постман или писањем јединичних тестова. Требало би да будете у могућности да осигурате да свих пет крајњих тачака раде како очекујете.
Такође можете прегледати и управљати подацима које сте додали у базу података помоћу пгАдмин алата. То је ГУИ апликација која олакшава обављање администрације базе података и интеракцију са ПостгреСКЛ серверима.