Οι περισσότερες εφαρμογές πραγματικού κόσμου διατηρούν δεδομένα σε βάσεις δεδομένων. Επομένως, είναι σημαντικό να γνωρίζετε πώς να συνδέσετε την εφαρμογή σας σε μια βάση δεδομένων και να ανακτήσετε δεδομένα από αυτήν.

Η MySQL είναι μια εξαιρετική επιλογή για βάση δεδομένων. Είναι εύκολο στη χρήση, έχει ευρεία υποστήριξη και είναι μια από τις πιο δημοφιλείς σχεσιακές βάσεις δεδομένων.

Πριν ξεκινήσεις

Εφόσον θα δοκιμάζετε τον κωδικό σύνδεσης σε έναν τοπικό διακομιστή MySQL, θα χρειαστεί εγκαταστήστε έναν διακομιστή MySQL πρώτα. Μόλις το κάνετε, δημιουργήστε μια κενή βάση δεδομένων και βεβαιωθείτε ότι έχετε διαθέσιμο το όνομα χρήστη και τον κωδικό πρόσβασης.

Δημιουργήστε μια εφαρμογή κόμβου

Στο τερματικό σας, εκτελέστε την ακόλουθη εντολή για να δημιουργήσετε έναν νέο φάκελο για την εφαρμογή κόμβου σας:

mkdir node-mysql

Πλοηγηθείτε στο κόμβος-mysql φάκελο και αρχικοποιήστε τον χρησιμοποιώντας npm:

CD κόμβος-mysql
npm init -y

Αυτό θα δημιουργήσει ένα αρχείο package.json το οποίο, μεταξύ άλλων ρυθμίσεων, θα περιέχει τις εξαρτήσεις του έργου σας.

instagram viewer

Συνδέστε το Node στη MySQL

Υπάρχουν διάφοροι τρόποι με τους οποίους μπορείτε να συνδέσετε την εφαρμογή κόμβου στη MySQL. ο mysql2 Το πακέτο είναι μια εξαιρετική επιλογή, την οποία μπορείτε να εγκαταστήσετε με μια εντολή όπως αυτή:

npm εγκατάσταση mysql2

Για να πραγματοποιήσετε τη σύνδεση, χρειάζεστε πολλές τιμές, δηλαδή τον κεντρικό υπολογιστή, τη θύρα, τον χρήστη, τη βάση δεδομένων και τον κωδικό πρόσβασης. Ακολουθεί ένα παράδειγμα που συνδέεται με μια βάση δεδομένων που ονομάζεται nodedb σε έναν διακομιστή MySQL εγκατεστημένο τοπικά.

συνθ config = {
οικοδεσπότης: "localhost",
Λιμάνι: 3306,
βάση δεδομένων: "nodedb",
χρήστης: "root",
Κωδικός πρόσβασης: "********",
}

Αυτό είναι το config αντικείμενο που θα περάσετε στη μέθοδο σύνδεσης όπως στο παρακάτω πρόγραμμα.

συνθ mysql = απαιτώ("mysql2")

συνθ config = {
οικοδεσπότης: "localhost",
βάση δεδομένων: "db_name",
χρήστης: "mysql_username",
κωδικός πρόσβασης: "mysql_password",
Όριο σύνδεσης: 100,
}

συνθ σύνδεση = mysql.createConnection (config)

σύνδεση.σύνδεση(λειτουργία(πλανώμαι) {
αν (πλανώμαι) βολή(πλανώμαι);
κονσόλα.log ("Συνδέθηκε!");
});

Όταν μεταβιβάζετε τα στοιχεία της βάσης δεδομένων στο mysql.createConnection() μέθοδο, δημιουργείτε ένα αντικείμενο σύνδεσης. Το αντικείμενο σύνδεσης θα σας επιτρέψει να εκτελέσετε συναλλαγές όπως η δημιουργία, η διαγραφή ή η ανάγνωση πινάκων.

Για παράδειγμα, ο παρακάτω κώδικας δημιουργεί έναν πίνακα στη βάση δεδομένων στην οποία συνδέεστε.

σύνδεση.σύνδεση(λειτουργία(πλανώμαι) {
αν (πλανώμαι) βολή πλανώμαι;
κονσόλα.log ("Συνδέθηκε!");

αφήνω createUser = `CREATE TABLE χρήστες (user_id INT(100), user_name VARCHAR(255), email VARCHAR(255))`;

Connection.query (createUser, λειτουργία(err, αποτελέσματα, πεδία) {
αν (λάθος) {
κονσόλα.log (err.message);
}
});
});

Όταν το εκτελείτε, αυτό το ερώτημα θα δημιουργήσει έναν νέο πίνακα που ονομάζεται χρήστες στη βάση δεδομένων. Το ερώτημα χρησιμοποιεί κοινή σύνταξη στην οποία μπορείτε να προσαρμοστείτε δημιουργήστε ένα σχήμα βάσης δεδομένων MySQL που ταιριάζει στις ανάγκες σας.

Το παραπάνω πρόγραμμα σύνδεσης λειτουργεί καλά εάν θέλετε να κάνετε μόνο μία σύνδεση. Ωστόσο, όταν κάνετε ταυτόχρονες αιτήσεις σύνδεσης, είναι καλύτερο να χρησιμοποιείτε μια ομάδα σύνδεσης.

Συνδέστε τον κόμβο στην MySQL χρησιμοποιώντας μια πισίνα σύνδεσης

Το άνοιγμα και το κλείσιμο των συνδέσεων μπορεί να γίνει ακριβό, ειδικά όταν είναι πολλές. Η συγκέντρωση συνδέσεων βάσεων δεδομένων συμβάλλει στη μείωση αυτού του κόστους διατηρώντας μια ομάδα ανοιχτών συνδέσεων. Όταν υποβάλλεται αίτημα, η πισίνα μπορεί να παρέχει ανοιχτή σύνδεση κατόπιν αιτήματος.

Κάνοντας αυτό, εξοικονομείτε χρόνο γιατί δεν χρειάζεται να ανοίγετε μια νέα σύνδεση κάθε φορά.

Χρησιμοποιήστε τον ακόλουθο κώδικα για να δημιουργήσετε μια πισίνα σύνδεσης στο Node:

συνθ mysql = απαιτώ("mysql2");

συνθ config = {
πλήθος: "localhost",
βάση δεδομένων: "db_name",
χρήστης: "mysql_username",
Κωδικός πρόσβασης: "mysql_password",
Όριο σύνδεσης: 100,
}

συνθ pool = mysql.createPool (config);

pool.query("ΕΠΙΛΟΓΗ * ΑΠΟ some_table", (σφάλμα, δεδομένα) => {
αν (πλανώμαι) βολή(πλανώμαι)
κονσόλα.log (δεδομένα);
});

Θυμηθείτε να αλλάξετε τις λεπτομέρειες διαμόρφωσης ώστε να ταιριάζουν με το δικό σας περιβάλλον.

Ασφαλής σύνδεση με MySQL

Η βιβλιοθήκη mysql2 απλοποιεί τη διαδικασία σύνδεσης μιας εφαρμογής Node σε μια βάση δεδομένων MySQL. Μπορείτε να χρησιμοποιήσετε είτε έναν μεμονωμένο πελάτη είτε μια ομάδα σύνδεσης. Ωστόσο, εάν πρέπει να υποβάλετε πολλά αιτήματα, είναι καλύτερο να χρησιμοποιήσετε μια ομάδα σύνδεσης, καθώς είναι λιγότερο δαπανηρή.

Η σύνδεση στη βάση δεδομένων είναι μόνο το πρώτο βήμα. Θα πρέπει επίσης να βεβαιωθείτε ότι τα δεδομένα που αποθηκεύετε στη βάση δεδομένων είναι ασφαλή. Εξάλλου, η MySQL είναι ένας δημοφιλής στόχος για εισβολείς. Υπάρχουν μερικά βασικά βήματα που μπορείτε να ακολουθήσετε για να ασφαλίσετε τον διακομιστή βάσης δεδομένων MySQL. Ορίστε έναν ισχυρό κωδικό πρόσβασης χρήστη, περιορίστε τις απομακρυσμένες συνδέσεις και μην παραχωρείτε περιττά προνόμια.