Node.js - MySQL Insert Into

Hallo那里,未来的编程巨星们!今天,我们将踏上一段激动人心的旅程,探索Node.js和MySQL的世界。具体来说,我们将关注如何使用Node.js将数据插入MySQL数据库。如果你是编程新手,不用担心——我会成为你的友好向导,一步一步地解释所有内容。那么,让我们跳进去吧!

Node.js - MySQL Insert Into

Was ist Node.js und MySQL?

Bevor wir loslegen, lassen Sie uns schnell verstehen, was Node.js und MySQL sind:

  1. Node.js: Es ist eine leistungsstarke JavaScript-Laufzeitumgebung, die es Ihnen ermöglicht, JavaScript auf Ihrem Computer auszuführen, nicht nur in einem Webbrowser.
  2. 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:

  1. Installieren Sie Node.js von der offiziellen Website (nodejs.org)
  2. Installieren Sie MySQL von mysql.com
  3. 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:

  1. Wir require das earlier installierte MySQL-Modul.
  2. Wir erstellen eine Verbindung mit mysql.createConnection(), indem wir unsere Datenbankdetails angeben.
  3. Wir verwenden connection.connect(), um tatsächlich eine Verbindung zur Datenbank herzustellen.
  4. 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?

  1. Wir erstellen ein Objekt newUser mit den Daten, die wir einfügen möchten.
  2. Wir verwenden connection.query(), um eine SQL-Abfrage an die Datenbank zu senden.
  3. Das ? in der Abfrage ist ein Platzhalter. MySQL ersetzt es mit unserem newUser-Objekt.
  4. 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:

  1. Wir erstellen ein Array von Benutzerobjekten.
  2. Wir verwenden users.map(), um unser Array in das Format zu transformieren, das MySQL erwartet.
  3. Der ?-Platzhalter repräsentiert jetzt mehrere Satz von Werten.
  4. 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?

  1. Wir trennen unsere SQL-Abfrage und unsere Daten.
  2. Die ?-Platzhalter in der SQL repräsentieren, wo unsere Daten hinkommen.
  3. Wir übergeben das values-Array als separates Argument an query().

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