Node.js mit MySQL verbinden
In diesem Kapitel wird erläutert, wie Sie mit Node.js eine Verbindung zu MySQL herstellen und Datenbankoperationen ausführen.
Wenn Sie noch keine Grundkenntnisse in MySQL haben, können Sie unser Tutorial lesen:MySQL-Tutorial。
Die SQL-Datei für die in diesem Tutorial verwendete Tabelle Websites:websites.sql.
Treiber installieren
Dieses Tutorial verwendet denvon Taobao angepassten cnpm-Befehlzur Installation:
$ cnpm install mysql
Verbindung zur Datenbank herstellen
Ändern Sie in den folgenden Beispielen den Datenbank-Benutzernamen, das Passwort und den Datenbanknamen entsprechend Ihrer tatsächlichen Konfiguration:
Code der Datei test.js:
Führen Sie den folgenden Befehl aus; das Ausgabeergebnis ist:
Die Lösung ist: 2
Beschreibung der Datenbankverbindungsparameter:
| Parameter | Beschreibung |
|---|---|
| host | Host-Adresse (Standard: localhost) |
| user | Benutzername |
| Passwort | Password |
| port | Portnummer (Standard: 3306) |
| Datenbank | Datenbankname |
| charset | Verbindungszeichensatz (Standard: 'UTF8_GENERAL_CI'; beachten Sie, dass die Buchstaben des Zeichensatzes in Großbuchstaben angegeben werden müssen) |
| localAddress | Diese IP wird für TCP-Verbindungen verwendet (optional) |
| socketPath | Mit einem Unix-Domain-Socket-Pfad verbinden; wird ignoriert, wenn host und port verwendet werden |
| timezone | Zeitzone (Standard: 'local') |
| connectTimeout | Verbindungs-Timeout (Standard: unbegrenzt; Einheit: Millisekunden) |
| stringifyObjects | Ob Objekte serialisiert werden sollen |
| typeCast | Ob Spaltenwerte in lokale JavaScript-Typwerte konvertiert werden sollen (Standard: true) |
| queryFormat | Benutzerdefinierte Formatierungsmethode für Abfrageanweisungen |
| supportBigNumbers | Wenn die Datenbank Spalten vom Typ bigint oder decimal unterstützt, muss diese Option auf true gesetzt werden (Standard: false) |
| bigNumberStrings | Wenn supportBigNumbers und bigNumberStrings aktiviert sind, erzwingen, dass bigint- oder decimal-Spalten als JavaScript-String-Typen zurückgegeben werden (Standard: false) |
| dateStrings | Erzwingen, dass timestamp-, datetime- und date-Typen als String-Typen statt als JavaScript-Date-Typen zurückgegeben werden (Standard: false) |
| debug | Debugging aktivieren (Standard: false) |
| multipleStatements | Mehrere MySQL-Anweisungen in einer einzigen Abfrage zulassen (Standard: false) |
| Flags | Wird verwendet, um Verbindungsflags zu ändern |
| ssl | SSL-Parameter verwenden (gleiches Format wie crypto.createCredenitals-Parameter) oder eine Zeichenkette, die den Namen einer SSL-Konfigurationsdatei enthält. Derzeit sind nur Amazon RDS-Konfigurationsdateien mitgeliefert. |
Weitere Details finden Sie unter:https://github.com/mysqljs/mysql
Datenbankoperationen (CURD)
Bevor Sie Datenbankoperationen durchführen, müssen Sie die auf dieser Seite bereitgestellte SQL-Datei websites.sql für die Tabelle Websites in Ihre MySQL-Datenbank importieren.
Der in diesem Tutorial getestete MySQL-Benutzername ist root, das Passwort ist 123456 und die Datenbank ist test. Sie müssen sie entsprechend Ihrer eigenen Konfiguration ändern.
Daten abfragen
Nachdem Sie die oben von uns bereitgestellte SQL-Datei in die Datenbank importiert haben, führen Sie den folgenden Code aus, um die Daten abzufragen:
Daten abfragen
Führen Sie den folgenden Befehl aus; das Ausgabeergebnis ist:
$ node test.js
--------------------------SELECT----------------------------
[ RowDataPacket {
id: 1,
name: 'Google',
url: 'https://www.google.cm/',
alexa: 1,
country: 'USA' },
RowDataPacket {
id: 2,
name: '淘宝',
url: 'https://www.taobao.com/',
alexa: 13,
country: 'CN' },
RowDataPacket {
id: 3,
name: 'Example',
url: 'http://www.example.com/',
alexa: 4689,
country: 'CN' },
RowDataPacket {
id: 4,
name: '微博',
url: 'http://weibo.com/',
alexa: 20,
country: 'CN' },
RowDataPacket {
id: 5,
name: 'Facebook',
url: 'https://www.facebook.com/',
alexa: 3,
country: 'USA' } ]
------------------------------------------------------------
Daten einfügen
Wir können Daten in die Datentabelle websties einfügen:
Daten einfügen
Führen Sie den folgenden Befehl aus; das Ausgabeergebnis ist:
$ node test.js
--------------------------INSERT----------------------------
INSERT ID: OkPacket {
fieldCount: 0,
affectedRows: 1,
insertId: 6,
serverStatus: 2,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0 }
-----------------------------------------------------------------
Nach erfolgreicher Ausführung sehen Sie in der Datentabelle die hinzugefügten Daten:

Daten aktualisieren
Wir können auch die Daten in der Datenbank ändern:
Daten aktualisieren
Führen Sie den folgenden Befehl aus; das Ausgabeergebnis ist:
--------------------------UPDATE---------------------------- UPDATE affectedRows 1 -----------------------------------------------------------------
Nach erfolgreicher Ausführung können Sie die Datentabelle anzeigen und die aktualisierten Daten sehen:

Daten löschen
Wir können den folgenden Code verwenden, um die Daten mit der ID 6 zu löschen:
Daten löschen
Führen Sie den folgenden Befehl aus; das Ausgabeergebnis ist:
--------------------------DELETE---------------------------- DELETE affectedRows 1 -----------------------------------------------------------------
Nach erfolgreicher Ausführung sehen Sie in der Datentabelle, dass die Daten mit id=6 gelöscht wurden:
