Node.js - MySQL Insert Into
Hallo那里,未来的编程巨星们!今天,我们将踏上一段激动人心的旅程,探索Node.js和MySQL的世界。具体来说,我们将关注如何使用Node.js将数据插入MySQL数据库。如果你是编程新手,不用担心——我会成为你的友好向导,一步一步地解释所有内容。那么,让我们跳进去吧!
Was ist Node.js und MySQL?
Bevor wir loslegen, lassen Sie uns schnell verstehen, was Node.js und MySQL sind:
- Node.js: Es ist eine leistungsstarke JavaScript-Laufzeitumgebung, die es Ihnen ermöglicht, JavaScript auf Ihrem Computer auszuführen, nicht nur in einem Webbrowser.
- MySQL: Es ist ein beliebtes Datenbankssystem, das Ihnen hilft, Daten zu speichern und zu verwalten.
Stellen Sie sich vor, Node.js ist ein Koch und MySQL ein großer, organisierter Kühlschrank. Wir werden Node.js verwenden, um einige Codezeilen zu zaubern, die Daten in unseren MySQL-Kühlschrank einfügen!
Einstellen unserer Umgebung
Zuerst einmal müssen wir unsere Küche (ich meine, unsere Entwicklungsumgebung) einrichten. Hier ist, was Sie tun müssen:
- Installieren Sie Node.js von der offiziellen Website (nodejs.org)
- Installieren Sie MySQL von mysql.com
- Installieren Sie das MySQL-Modul für Node.js, indem Sie diesen Befehl in Ihrem Terminal ausführen:
npm install mysql
Großartig! Jetzt haben wir alle unsere Zutaten bereit. Lassen Sie uns mit dem Kochen... ich meine, Coden anfangen!
Daten mit Node.js einfügen
Herstellen einer Verbindung
Bevor wir Daten einfügen können, müssen wir eine Verbindung zu unserer MySQL-Datenbank herstellen. So machen wir das:
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database_name'
});
connection.connect((err) => {
if (err) {
console.error('Fehler bei der Verbindung zur Datenbank: ' + err.stack);
return;
}
console.log('Mit der Datenbank verbunden.');
});
Lassen Sie uns das aufschlüsseln:
- Wir require das earlier installierte MySQL-Modul.
- Wir erstellen eine Verbindung mit
mysql.createConnection()
, indem wir unsere Datenbankdetails angeben. - Wir verwenden
connection.connect()
, um tatsächlich eine Verbindung zur Datenbank herzustellen. - Wenn es einen Fehler gibt, loggen wir ihn. Andernfalls bestätigen wir, dass wir verbunden sind.
Einfache INSERT-Abfrage
Jetzt, wo wir verbunden sind, lassen's uns einige Daten einfügen! Stellen wir uns eine Tabelle namens users
mit den Spalten id
, name
und email
vor. So können wir einen neuen Benutzer einfügen:
const newUser = { name: 'John Doe', email: '[email protected]' };
connection.query('INSERT INTO users SET ?', newUser, (error, results) => {
if (error) throw error;
console.log('Neuer Benutzer mit ID hinzugefügt: ' + results.insertId);
});
Was passiert hier?
- Wir erstellen ein Objekt
newUser
mit den Daten, die wir einfügen möchten. - Wir verwenden
connection.query()
, um eine SQL-Abfrage an die Datenbank zu senden. - Das
?
in der Abfrage ist ein Platzhalter. MySQL ersetzt es mit unseremnewUser
-Objekt. - Wenn erfolgreich, gibt MySQL einige Ergebnisse zurück, einschließlich der ID des neuen Datensatzes.
Einfügen mehrerer Datensätze
Was ist, wenn wir mehrere Benutzer gleichzeitig hinzufügen möchten? Das können wir auch!
const users = [
{ name: 'Alice', email: '[email protected]' },
{ name: 'Bob', email: '[email protected]' },
{ name: 'Charlie', email: '[email protected]' }
];
connection.query('INSERT INTO users (name, email) VALUES ?', [users.map(user => [user.name, user.email])], (error, results) => {
if (error) throw error;
console.log('Anzahl der eingefügten Datensätze: ' + results.affectedRows);
});
Hier ist, was neu ist:
- Wir erstellen ein Array von Benutzerobjekten.
- Wir verwenden
users.map()
, um unser Array in das Format zu transformieren, das MySQL erwartet. - Der
?
-Platzhalter repräsentiert jetzt mehrere Satz von Werten. -
results.affectedRows
tells us how many records were inserted.
INSERT mit vorbereiteten Anweisungen
Jetzt leveln wir unser Spiel mit vorbereiteten Anweisungen auf. Diese sind wie Rezepte, die wir immer wieder verwenden können, nur die Zutaten (Daten) ändern sich jedes Mal.
const sql = "INSERT INTO users (name, email) VALUES (?, ?)";
const values = ['David', '[email protected]'];
connection.query(sql, values, (error, results) => {
if (error) throw error;
console.log('Neuer Benutzer mit ID hinzugefügt: ' + results.insertId);
});
Was ist hier besonders?
- Wir trennen unsere SQL-Abfrage und unsere Daten.
- Die
?
-Platzhalter in der SQL repräsentieren, wo unsere Daten hinkommen. - Wir übergeben das
values
-Array als separates Argument anquery()
.
Diese Methode ist sicherer und kann vor SQL-Injection-Angriffen schützen. Es ist wie das Verwenden eines vertrauenswürdigen Rezepts anstatt einfach Zutaten zusammenzuschmeißen!
Wiederverwenden von vorbereiteten Anweisungen
Die wahre Stärke von vorbereiteten Anweisungen zeigt sich, wenn wir sie wiederverwenden:
const sql = "INSERT INTO users (name, email) VALUES (?, ?)";
const users = [
['Eva', '[email protected]'],
['Frank', '[email protected]'],
['Grace', '[email protected]']
];
users.forEach(user => {
connection.query(sql, user, (error, results) => {
if (error) throw error;
console.log('Neuer Benutzer mit ID hinzugefügt: ' + results.insertId);
});
});
Hier verwenden wir das gleiche SQL-"Rezept" für jeden Benutzer, nur die "Zutaten" (Werte) ändern sich jedes Mal.
Verbindung schließen
Vergessen Sie nicht, die Küche zu schließen, wenn Sie fertig mit dem Kochen sind! Ich meine, schließen Sie die Datenbankverbindung, wenn Sie fertig mit dem Abfragen sind:
connection.end((err) => {
if (err) {
console.error('Fehler beim Schließen der Datenbankverbindung: ' + err.stack);
return;
}
console.log('Datenbankverbindung geschlossen.');
});
Das stellt sicher, dass wir keine offenen Verbindungen hinterlassen, die unsere Anwendung oder den Datenbankserver verlangsamen könnten.
Zusammenfassung der Methoden
Hier ist eine kurze Referenztabelle der Methoden, die wir gelernt haben:
Methode | Beschreibung |
---|---|
mysql.createConnection() |
Erstellt eine Verbindung zur MySQL-Datenbank |
connection.connect() |
Stellt die Datenbankverbindung her |
connection.query() |
Führt eine SQL-Abfrage aus |
connection.end() |
Schließt die Datenbankverbindung |
Schlussfolgerung
Glückwunsch! Sie haben gerade gelernt, wie man Daten in eine MySQL-Datenbank mit Node.js einfügt. Wir haben einfache Einzelfügeoperationen, mehrfache Einträge und sogar vorbereitete Anweisungen behandelt. Erinnern Sie sich daran, dass Übung den Meister macht, also fürchten Sie sich nicht, diese Konzepte auszuprobieren.
In meinen Jahren des Unterrichtens habe ich festgestellt, dass das Lernen durch Tun am besten funktioniert. Also, warum nicht ein kleines Projekt erstellen? Vielleicht eine einfache App, die Ihre Lieblingsrezepte in einer Datenbank speichert? Auf diese Weise können Sie Ihre neuen Fähigkeiten üben undGrandmas geheimen Kekskuchenrezept nie wieder verlieren!
Frohes Coden und möge Ihre Datenbanken immer ordnungsgemäß normalisiert sein!
Credits: Image by storyset