Większość rzeczywistych aplikacji przechowuje dane w bazach danych. Dlatego ważne jest, aby wiedzieć, jak połączyć swoją aplikację z bazą danych i pobrać z niej dane.
MySQL to doskonały wybór dla bazy danych. Jest łatwy w użyciu, ma szerokie wsparcie i jest jedną z najpopularniejszych relacyjnych baz danych.
Zanim zaczniesz
Ponieważ będziesz testować kod połączenia na lokalnym serwerze MySQL, musisz: zainstaluj serwer MySQL pierwszy. Gdy to zrobisz, utwórz pustą bazę danych i upewnij się, że masz pod ręką nazwę użytkownika i hasło.
Utwórz aplikację węzła
W swoim terminalu uruchom następujące polecenie, aby utworzyć nowy folder dla aplikacji węzła:
mkdir node-mysql
Przejdź do node-mysql folder i zainicjuj go za pomocą npm:
płyta CD node-mysql
npm początek -y
Spowoduje to wygenerowanie pliku package.json, który między innymi będzie zawierał zależności Twojego projektu.
Połącz węzeł z MySQL
Istnieje kilka sposobów połączenia aplikacji węzła z MySQL. The mysql2 pakiet to doskonały wybór, który możesz zainstalować za pomocą polecenia takiego:
npm zainstaluj mysql2
Aby nawiązać połączenie, potrzebujesz kilku wartości, a mianowicie hosta, portu, użytkownika, bazy danych i hasła. Oto przykład, który łączy się z bazą danych o nazwie nodedb na serwerze MySQL zainstalowanym lokalnie.
stały konfiguracja = {
host: "host lokalny",
Port: 3306,
baza danych: "nodedb",
użytkownik: "root",
hasło: "********",
}
To jest konfiguracja obiekt przekażesz do metody połączenia jak w poniższym programie.
stały mysql = wymagać("mysql2")
stały konfiguracja = {
host: "host lokalny",
baza danych: "nazwa_bazy",
użytkownik: "mysql_username",
hasło: "mysql_password",
limit połączenia: 100,
}stały połączenie = mysql.createConnection (config)
połączenie.połączyć(funkcjonować(błądzić) {
jeśli (błądzić) rzucić(błądzić);
konsola.log("Połączono!");
});
Kiedy przekazujesz dane bazy danych do mysql.utwórzPołączenie() metody, tworzysz obiekt połączenia. Obiekt połączenia umożliwia wykonywanie transakcji, takich jak tworzenie, usuwanie lub odczytywanie tabel.
Na przykład poniższy kod tworzy tabelę w bazie danych, z którą się łączysz.
połączenie.połączyć(funkcjonować(błądzić) {
jeśli (błądzić) rzucić błądzić;
konsola.log("Połączono!");wynajmować utwórzUżytkownika = `CREATE TABLE użytkownicy (user_id INT(100), user_name VARCHAR(255), e-mail VARCHAR(255))`;
connection.query (createUser, funkcjonować(błąd, wyniki, pola) {
jeśli (błąd) {
konsola.log (komunikat o błędzie);
}
});
});
Po uruchomieniu to zapytanie utworzy nową tabelę o nazwie użytkownicy w bazie danych. Zapytanie używa wspólnej składni, do której możesz dostosować utwórz schemat bazy danych MySQL który odpowiada Twoim potrzebom.
Powyższy program do łączenia działa dobrze, jeśli chcesz nawiązać tylko jedno połączenie. Jednak w przypadku równoczesnych żądań połączeń najlepiej jest użyć puli połączeń.
Połącz Node z MySQL za pomocą puli połączeń
Otwieranie i zamykanie połączeń może stać się drogie, zwłaszcza gdy jest ich wiele. Pula połączeń z bazą danych pomaga zmniejszyć ten koszt, utrzymując pulę otwartych połączeń. Po zgłoszeniu żądania pula może zapewnić otwarte połączenie na żądanie.
W ten sposób oszczędzasz czas, ponieważ nie musisz za każdym razem otwierać nowego połączenia.
Użyj poniższego kodu, aby utworzyć pulę połączeń w Node:
stały mysql = wymagać("mysql2");
stały konfiguracja = {
gospodarz: "Lokalny Gospodarz",
Baza danych: "nazwa_bazy",
użytkownik: "mysql_nazwa_użytkownika",
hasło: "mysql_password",
limit połączenia: 100,
}stały pula = mysql.createPool (konfiguracja);
pula.zapytanie("WYBIERZ * Z jakaś_tabela", (błąd, dane) => {
jeśli (błądzić) rzucić(błądzić)
konsola.log (dane);
});
Pamiętaj, aby zmienić szczegóły konfiguracji, aby dopasować je do własnego środowiska.
Bezpieczne łączenie się z MySQL
Biblioteka mysql2 upraszcza proces łączenia aplikacji Node z bazą danych MySQL. Możesz użyć pojedynczego klienta lub puli połączeń. Jeśli jednak musisz wysłać wiele żądań, najlepiej jest użyć puli połączeń, ponieważ jest mniej kosztowna.
Połączenie z bazą danych to dopiero pierwszy krok. Należy również upewnić się, że dane przechowywane w bazie danych są bezpieczne. W końcu MySQL jest popularnym celem atakujących. Istnieje kilka podstawowych kroków, które możesz wykonać, aby zabezpieczyć serwer bazy danych MySQL. Ustaw silne hasło użytkownika, ogranicz zdalne logowanie i nie przydzielaj zbędnych uprawnień.