Ich habe gerade angefangen, in Node.js einzusteigen. Ich komme aus einem PHP-Hintergrund, daher bin ich es ziemlich gewohnt, MySQL für alle meine Datenbankanforderungen zu verwenden.
Was hast du am Ende gemacht? Es gibt einige gute Informationen unten, ich würde gerne hören, was Ihre Erfahrungen waren
Landon
7
@Landon hat sich aus einigen Gründen für Node-MySQL entschieden, hauptsächlich weil es sich in einer ziemlich aktiven Entwicklung befindet und am weitesten verbreitet zu sein scheint. Die multipleStatementsFunktion gefällt mir auch sehr gut .
crawf
@crawf Was bevorzugst du, PHP oder Node.js? Ich bin in PHP / MySQL gesprungen, denke aber darüber nach, zum Knoten zu wechseln, da es sich viel natürlicher anfühlt, wenn man bedenkt, dass die Syntax JS-Syntax ist
oldboy
1
@Anthony Persönliche Vorlieben Ich nehme an, es hängt von dem Ökosystem ab, in dem Sie sich entwickeln, ob Sie in einem Team sind usw. Dieser ursprüngliche Beitrag ist uralt und hat sich in der Knotenlandschaft, in der er für die Front weitaus üblicher ist, stark verändert und Backend-Arbeit. Ich würde sagen, wenn Sie Zeit haben, Node auszuprobieren, und es ist großartig, gepaart mit Dingen wie socket.io für Echtzeit-Web-Sockets.
var mysql =require('mysql');var connection = mysql.createConnection({
host :'example.org',
user :'bob',
password :'secret',});
connection.connect(function(err){// connected! (unless `err` is set)});
Fragen:
var post ={id:1, title:'Hello MySQL'};var query = connection.query('INSERT INTO posts SET ?', post,function(err, result){// Neat!});
console.log(query.sql);// INSERT INTO posts SET `id` = 1, `title` = 'Hello MySQL'
+1 auch für Node-MySQL. Was gibt es Schöneres, als nur requireeine Javascript-Bibliothek zu erstellen
Alex K
4
@ KevinLaity Ich hatte den Eindruck, dass Node-MySQL noch keine vorbereiteten Anweisungen implementiert hat. Die Syntax sieht einfach ähnlich aus . Stattdessen scheinen vorerst Sonderzeichen maskiert zu sein.
funseiki
4
Außerdem können Sie Ihren Datenbanknamen erhalten, indem Sie 'Datenbank' zum Verbindungsobjekt hinzufügen
felipekm
28
node-mysql ist wahrscheinlich eines der besten Module für die Arbeit mit MySQL-Datenbanken, die aktiv gepflegt und gut dokumentiert sind.
Da dies ein alter Thread ist, der nur ein Update hinzufügt:
So installieren Sie den MySQL node.js-Treiber:
Wenn Sie nur ausführen npm install mysql, müssen Sie sich in demselben Verzeichnis befinden, in dem Sie Ihren Server ausführen. Ich würde empfehlen, dies wie in einem der folgenden Beispiele zu tun:
Für die globale Installation:
npm install -g mysql
Für die lokale Installation:
1- Fügen Sie es Ihren package.jsonAbhängigkeiten hinzu:
"dependencies":{"mysql":"~2.3.2",...
2- laufen npm install
Beachten Sie, dass Sie für Verbindungen auch den MySQL-Server ausführen müssen (der knotenunabhängig ist).
So installieren Sie den MySQL-Server:
Es gibt eine Reihe von Tutorials, die dies erklären, und es ist ein bisschen abhängig vom Betriebssystem. Gehen Sie einfach zu Google und suchen Sie nach how to install mysql server [Ubuntu|MacOSX|Windows]. Aber in einem Satz: Sie müssen zu http://www.mysql.com/downloads/ gehen und es installieren.
Dieser Code scheint vermasselt .. viele Fehler einschließlichCannot read property 'release' of undefined
Pacerier
3
KnexJs können sowohl in Node.JS als auch im Browser als SQL-Abfrage-Builder verwendet werden. Ich finde es einfach zu bedienen. Lass es versuchen - Knex.js
$ npm install knex --save
# Then add one of the following (adding a --save) flag:
$ npm install pg
$ npm install sqlite3
$ npm install mysql
$ npm install mysql2
$ npm install mariasql
$ npm install strong-oracle
$ npm install oracle
$ npm install mssql
var knex =require('knex')({
client:'mysql',
connection:{
host :'127.0.0.1',
user :'your_database_user',
password :'your_database_password',
database :'myapp_test'}});
Imo sollten Sie MySQL Connector / Node.js ausprobieren, den offiziellen Node.js-Treiber für MySQL. Siehe Ref-1 und Ref-2 für eine detaillierte Erklärung. Ich habe mysqljs / mysql ausprobiert, das hier verfügbar ist , aber ich finde keine detaillierte Dokumentation zu Klassen, Methoden und Eigenschaften dieser Bibliothek.
Also wechselte ich zu dem Standard MySQL Connector/Node.jsmit X DevAPI, da es ein ist asynchron Versprechen-basierte Client - Bibliothek und bietet eine gute Dokumentation. Schauen Sie sich das folgende Code-Snippet an:
const mysqlx =require('@mysql/xdevapi');const rows =[];
mysqlx.getSession('mysqlx://localhost:33060').then(session =>{const table = session.getSchema('testSchema').getTable('testTable');// The criteria is defined through the expression.return table.update().where('name = "bar"').set('age',50).execute().then(()=>{return table.select().orderBy('name ASC').execute(row => rows.push(row));});}).then(()=>{
console.log(rows);});
Sie können auch eine neuere Version ausprobieren, die als Node.js DB bekannt ist und ein gemeinsames Framework für mehrere Datenbankmodule bereitstellen soll. Es wurde mit C ++ erstellt, sodass die Leistung garantiert ist.
Insbesondere können Sie den db-mysql-Treiber für die MySQL-Unterstützung von Node.j verwenden .
node-db wird nicht mehr unterstützt (8 Monate inaktiv, verwendet veraltetes node-waf) und die Installation ist für mich fehlgeschlagen.
Yogu
18
"Es wurde mit C ++ erstellt, damit die Leistung garantiert ist" - die einfache Verwendung von C ++ garantiert keine Leistung, muss jedoch noch korrekt programmiert werden.
Developerbmw
Node-DB wird nicht nur nicht unterstützt, der Link ist auch tot - er wird gerade auf eine Art Anzeigenwebsite umgeleitet. Downvoting.
Nurdglaw
2
@Mariano, Link Down
Pacerier
0
Verbinden Sie die MySQL-Datenbank, indem Sie eine Bibliothek installieren. Hier wurde das stabile und einfach zu bedienende Node-MySQL-Modul ausgewählt.
npm install mysql@2.0.0-alpha2
var http =require('http'),
mysql =require('mysql');var sqlInfo ={
host:'localhost',
user:'root',
password:'urpass',
database:'dbname'}
client = mysql.createConnection(sqlInfo);
client.connect();
Soweit ich weiß, sind Alpha-Releases niemals als "stabil" zu betrachten. Korrigiere mich, wenn ich falsch liege. Alpha hat die Möglichkeit, seine API dramatisch zu ändern, bevor es zum endgültigen Ergebnis kommt, was im Produktionscode (und sogar im Entwicklungscode) höchst unerwünscht ist. Das heißt, wenn die Versionsnummerierung den semver.org- Richtlinien entspricht.
Robin van Baalen
1
"intelligente" Anführungszeichen ('') erweisen sich in js-Dateien als nicht so intelligent.
Glyphe
Ich mag diesen Kommentar, weil er zeigt, wo der Datenbankname abgelegt werden soll
Boris Ivanov
0
Sie können ORM, Builder usw. überspringen und Ihre DB / SQL-Verwaltung mit sqlerund vereinfachen sqler-mdb.
-- create this file at: db/mdb/setup/create.database.sqlCREATEDATABASEIFNOTEXISTS sqlermysql
const conf ={"univ":{"db":{"mdb":{"host":"localhost","username":"admin","password":"mysqlpassword"}}},"db":{"dialects":{"mdb":"sqler-mdb"},"connections":[{"id":"mdb","name":"mdb","dir":"db/mdb","service":"MySQL","dialect":"mdb","pool":{},"driverOptions":{"connection":{"multipleStatements":true}}}]}};// create/initialize managerconst manager =newManager(conf);await manager.init();// .sql file path is path to db functionconst result =await manager.db.mdb.setup.create.database();
console.log('Result:', result);// after we're done using the manager we should close it
process.on('SIGINT',asyncfunction sigintDB(){await manager.close();
console.log('Manager has been closed');});
multipleStatements
Funktion gefällt mir auch sehr gut .Antworten:
Überprüfen Sie die Modulliste node.js.
node-mysql sieht einfach aus:
Fragen:
quelle
require
eine Javascript-Bibliothek zu erstellennode-mysql ist wahrscheinlich eines der besten Module für die Arbeit mit MySQL-Datenbanken, die aktiv gepflegt und gut dokumentiert sind.
quelle
Da dies ein alter Thread ist, der nur ein Update hinzufügt:
So installieren Sie den MySQL node.js-Treiber:
Wenn Sie nur ausführen
npm install mysql
, müssen Sie sich in demselben Verzeichnis befinden, in dem Sie Ihren Server ausführen. Ich würde empfehlen, dies wie in einem der folgenden Beispiele zu tun:Für die globale Installation:
Für die lokale Installation:
1- Fügen Sie es Ihren
package.json
Abhängigkeiten hinzu:2- laufen
npm install
Beachten Sie, dass Sie für Verbindungen auch den MySQL-Server ausführen müssen (der knotenunabhängig ist).
So installieren Sie den MySQL-Server:
Es gibt eine Reihe von Tutorials, die dies erklären, und es ist ein bisschen abhängig vom Betriebssystem. Gehen Sie einfach zu Google und suchen Sie nach
how to install mysql server [Ubuntu|MacOSX|Windows]
. Aber in einem Satz: Sie müssen zu http://www.mysql.com/downloads/ gehen und es installieren.quelle
npm install --save mysql
wird es installieren undpackage.json
automatisch hinzufügenHier ist der Produktionscode, der Ihnen helfen kann.
Package.json
Hier ist die Serverdatei.
Referenz: https://codeforgeek.com/2015/01/nodejs-mysql-tutorial/
quelle
Cannot read property 'release' of undefined
KnexJs können sowohl in Node.JS als auch im Browser als SQL-Abfrage-Builder verwendet werden. Ich finde es einfach zu bedienen. Lass es versuchen - Knex.js
Sie können es so verwenden
oder
quelle
Imo sollten Sie MySQL Connector / Node.js ausprobieren, den offiziellen Node.js-Treiber für MySQL. Siehe Ref-1 und Ref-2 für eine detaillierte Erklärung. Ich habe mysqljs / mysql ausprobiert, das hier verfügbar ist , aber ich finde keine detaillierte Dokumentation zu Klassen, Methoden und Eigenschaften dieser Bibliothek.
Also wechselte ich zu dem Standard
MySQL Connector/Node.js
mitX DevAPI
, da es ein ist asynchron Versprechen-basierte Client - Bibliothek und bietet eine gute Dokumentation. Schauen Sie sich das folgende Code-Snippet an:quelle
Sie können auch eine neuere Version ausprobieren, die als Node.js DB bekannt ist und ein gemeinsames Framework für mehrere Datenbankmodule bereitstellen soll. Es wurde mit C ++ erstellt, sodass die Leistung garantiert ist.
Insbesondere können Sie den db-mysql-Treiber für die MySQL-Unterstützung von Node.j verwenden .
quelle
Verbinden Sie die MySQL-Datenbank, indem Sie eine Bibliothek installieren. Hier wurde das stabile und einfach zu bedienende Node-MySQL-Modul ausgewählt.
Für NodeJS mysql Verbindungs- und Abfragebeispiel
quelle
Sie können ORM, Builder usw. überspringen und Ihre DB / SQL-Verwaltung mit
sqler
und vereinfachensqler-mdb
.quelle