Повечето приложения от реалния свят съхраняват данни в бази данни. Затова е важно да знаете как да свържете приложението си към база данни и да извлечете данни от нея.
MySQL е отличен избор за база данни. Той е лесен за използване, има широко разпространена поддръжка и е една от най-популярните релационни бази данни.
Преди да започнеш
Тъй като ще тествате кода за връзка на локален MySQL сървър, ще трябва инсталирайте MySQL сървър първо. След като го направите, създайте празна база данни и се уверете, че имате под ръка потребителското име и паролата.
Създайте приложение на възел
Във вашия терминал изпълнете следната команда, за да създадете нова папка за вашето приложение на възел:
mkdir възел-mysql
Навигирайте до възел-mysql папка и я инициализирайте с помощта на npm:
cd възел-mysql
npm init -y
Това ще генерира файл package.json, който, наред с други конфигурации, ще съдържа зависимостите на вашия проект.
Свържете Node с MySQL
Има няколко начина, по които можете да свържете вашето приложение за възел към MySQL. В
mysql2 пакетът е отличен избор, който можете да инсталирате с команда като тази:npm инсталирайте mysql2
За да осъществите връзката, имате нужда от няколко стойности, а именно хост, порт, потребител, база данни и парола. Ето пример, който се свързва с база данни, наречена nodedb на MySQL сървър, инсталиран локално.
const config = {
хост: "localhost",
пристанище: 3306,
база данни: "nodedb",
потребител: "root",
парола: "*********",
}
Това е конфиг обект, който ще предадете на метода на свързване, както в програмата по-долу.
const mysql = изискват("mysql2")
const config = {
хост: "localhost",
база данни: "db_name",
потребител: "mysql_username",
парола: "mysql_password",
ограничение на връзката: 100,
}const връзка = mysql.createConnection (конфигурация)
connection.connect(функция(греш) {
ако (грешка) хвърлям(грешка);
конзола.log("Свързан!");
});
Когато предадете данните за базата данни на mysql.createConnection() метод, създавате обект за връзка. Обектът на връзката ще ви позволи да извършвате транзакции като създаване, изтриване или четене на таблици.
Например, следният код създава таблица в базата данни, към която се свързвате.
connection.connect(функция(греш) {
ако (грешка) хвърлям грешно;
конзола.log("Свързан!");позволявам createUser = `CREATE TABLE потребители (user_id INT(100), user_name VARCHAR(255), имейл VARCHAR(255))`;
connection.query (createUser, функция(err, резултати, полета) {
ако (грешка) {
конзола.log (err.message);
}
});
});
Когато го стартирате, тази заявка ще създаде нова таблица, наречена потребители в базата данни. Заявката използва общ синтаксис, към който можете да се адаптирате създайте схема на база данни на MySQL който отговаря на вашите нужди.
Програмата за свързване по-горе работи добре, ако искате да направите само една връзка. Въпреки това, когато правите едновременни заявки за връзка, най-добре е да използвате пул за връзки.
Свържете Node към MySQL, като използвате пул за връзки
Отварянето и затварянето на връзки може да стане скъпо, особено когато има много. Пулирането на връзки към базата данни помага за намаляване на тези разходи чрез поддържане на пул от отворени връзки. Когато е направена заявка, пулът може да осигури отворена връзка при поискване.
По този начин спестявате време, защото не е нужно да отваряте нова връзка всеки път.
Използвайте следния код, за да създадете пул за връзки в Node:
const mysql = изискват("mysql2");
const config = {
домакин: "локален хост",
база данни: "db_name",
потребител: "mysql_username",
парола: "mysql_password",
ограничение на връзката: 100,
}const пул = mysql.createPool (конфигурация);
pool.query("ИЗБЕРЕТЕ * ОТ някаква_таблица", (грешка, данни) => {
ако (грешка) хвърлям(грешка)
конзола.log (данни);
});
Не забравяйте да промените подробностите за конфигурацията, за да съответстват на вашата собствена среда.
Сигурно свързване към MySQL
Библиотеката mysql2 опростява процеса на свързване на приложение Node към MySQL база данни. Можете да използвате или единичен клиент, или пул за връзки. Въпреки това, ако трябва да направите множество заявки, най-добре е да използвате пул за връзки, тъй като е по-евтин.
Свързването с базата данни е само първата стъпка. Трябва също така да се уверите, че данните, които съхранявате в базата данни, са защитени. В крайна сметка MySQL е популярна цел за нападателите. Има някои основни стъпки, които можете да предприемете, за да защитите вашия сървър на база данни MySQL. Задайте силна потребителска парола, ограничете отдалечените влизания и не предоставяйте ненужни привилегии.