Majoritatea aplicațiilor din lumea reală persistă datele în baze de date. Prin urmare, este important să știți cum să vă conectați aplicația la o bază de date și să preluați date din aceasta.
MySQL este o alegere excelentă pentru o bază de date. Este ușor de utilizat, are suport larg și este una dintre cele mai populare baze de date relaționale.
Înainte de a începe
Deoarece veți testa codul de conexiune pe un server local MySQL, va trebui instalați un server MySQL primul. După ce ați făcut acest lucru, creați o bază de date goală și asigurați-vă că aveți numele de utilizator și parola la îndemână.
Creați o aplicație Node
În terminalul dvs., executați următoarea comandă pentru a crea un folder nou pentru aplicația nod:
mkdir node-mysql
Navigați la nod-mysql folder și inițializați-l folosind npm:
CD nod-mysql
npm init -y
Acest lucru va genera un fișier package.json care, printre alte configurații, va deține dependențele proiectului dumneavoastră.
Conectați Node la MySQL
Există mai multe moduri prin care vă puteți conecta aplicația nod la MySQL. The
mysql2 pachetul este o alegere excelentă, pe care o puteți instala cu o comandă ca aceasta:npm instalează mysql2
Pentru a realiza conexiunea, aveți nevoie de mai multe valori și anume gazda, portul, utilizatorul, baza de date și parola. Iată un exemplu care se conectează la o bază de date numită încuviințatb pe un server MySQL instalat local.
const config = {
gazdă: „localhost”,
port: 3306,
baza de date: "nodedb",
utilizator: „rădăcină”,
parola: "********",
}
Acesta este config obiect pe care îl veți trece la metoda de conectare ca în programul de mai jos.
const mysql = cere("mysql2")
const config = {
gazdă: „localhost”,
baza de date: „db_name”,
utilizator: „mysql_username”,
parola: "mysql_password",
connectionLimit: 100,
}const conexiune = mysql.createConnection (config)
connection.connect(funcţie(a greșit) {
dacă (eroare) arunca(eră);
consolă.log("Conectat!");
});
Când transmiteți detaliile bazei de date către mysql.createConnection() metoda, creați un obiect de conexiune. Obiectul de conexiune vă va permite să efectuați tranzacții precum crearea, ștergerea sau citirea tabelelor.
De exemplu, următorul cod creează un tabel în baza de date la care vă conectați.
connection.connect(funcţie(a greșit) {
dacă (eroare) arunca a greșit;
consolă.log("Conectat!");lăsa createUser = `CREATE TABLE utilizatori (user_id INT(100), user_name VARCHAR(255), email VARCHAR(255))`;
connection.query (createUser, funcţie(eroare, rezultate, câmpuri) {
dacă (eroare) {
consolă.log (err.message);
}
});
});
Când îl rulați, această interogare va crea un nou tabel numit utilizatorii în baza de date. Interogarea folosește o sintaxă comună la care vă puteți adapta creați o schemă de bază de date MySQL care se potrivește nevoilor dumneavoastră.
Programul de conectare de mai sus funcționează bine dacă doriți doar să faceți o singură conexiune. Cu toate acestea, atunci când faceți cereri de conexiune simultană, cel mai bine este să utilizați un pool de conexiuni.
Conectați Node la MySQL utilizând un pool de conexiuni
Deschiderea și închiderea conexiunilor poate deveni costisitoare, mai ales când sunt multe. Gruparea conexiunilor la baze de date ajută la reducerea acestui cost prin menținerea unui grup de conexiuni deschise. Când se face o solicitare, piscina poate oferi o conexiune deschisă la cerere.
Procedând astfel, economisiți timp, deoarece nu trebuie să deschideți o nouă conexiune de fiecare dată.
Utilizați următorul cod pentru a crea un pool de conexiuni în Node:
const mysql = cere("mysql2");
const config = {
gazdă: "gazdă locală",
Bază de date: "db_name",
utilizator: "mysql_username",
parola: "parola_mysql",
limită de conectare: 100,
}const pool = mysql.createPool (config);
pool.query("SELECTAȚI * FROM some_table", (err, date) => {
dacă (eroare) arunca(eroare)
consolă.log (date);
});
Nu uitați să modificați detaliile de configurare pentru a se potrivi cu propriul dvs. mediu.
Conectare în siguranță la MySQL
Biblioteca mysql2 simplifică procesul de conectare a unei aplicații Node la o bază de date MySQL. Puteți utiliza fie un singur client, fie un pool de conexiuni. Cu toate acestea, dacă trebuie să faceți mai multe solicitări, cel mai bine este să utilizați un pool de conexiuni, deoarece este mai puțin costisitor.
Conectarea la baza de date este doar primul pas. De asemenea, ar trebui să vă asigurați că datele pe care le stocați în baza de date sunt sigure. La urma urmei, MySQL este o țintă populară pentru atacatori. Există câțiva pași de bază pe care îi puteți face pentru a vă securiza serverul de baze de date MySQL. Setați o parolă de utilizator puternică, restricționați conectările de la distanță și nu acordați privilegii inutile.