Je viens de commencer à entrer dans Node.js. Je viens d'un arrière-plan PHP, donc je suis assez habitué à utiliser MySQL pour tous mes besoins de base de données.
qu'avez-vous fini avec? il y a quelques bonnes informations ci-dessous, je serais intéressé à connaître vos expériences
Landon
7
@Landon, en fait, est allé avec node-mysql pour plusieurs raisons, principalement parce qu'il est en développement assez actif, et semble être le plus largement utilisé. J'aime aussi beaucoup la multipleStatementsfonction.
crawf
@crawf Que préférez-vous, PHP ou Node.js? J'ai sauté dans PHP / MySQL, mais je pense à passer au nœud car cela me semblerait beaucoup plus naturel étant donné que la syntaxe est la syntaxe JS
oldboy
1
@Anthony Préférence personnelle Je suppose que cela dépend de l'écosystème dans lequel vous vous développez, si vous êtes dans une équipe, etc. et le travail de back-end. Je dirais que si vous avez le temps d'essayer Node, et son excellent jumelé avec des choses comme socket.io pour les sockets Web en temps réel.
var mysql =require('mysql');var connection = mysql.createConnection({
host :'example.org',
user :'bob',
password :'secret',});
connection.connect(function(err){// connected! (unless `err` is set)});
Requêtes:
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 pour node-mysql également. Quoi de mieux que de simplement requireing d'une bibliothèque javascript
Alex K
4
@KevinLaity J'avais l'impression que node-mysql n'a pas encore mis en œuvre d'instructions préparées. La syntaxe est similaire . Au lieu de cela, il semble que, pour l'instant, les caractères spéciaux soient échappés.
funseiki
4
De plus, vous pouvez obtenir le nom de votre base de données en ajoutant «base de données» à l'objet de connexion
felipekm
29
node-mysql est probablement l'un des meilleurs modules utilisés pour travailler avec la base de données MySQL qui est activement maintenue et bien documentée.
Puisqu'il s'agit d'un ancien fil ajoutant simplement une mise à jour:
Pour installer le pilote MySQL node.js:
Si vous exécutez simplement npm install mysql, vous devez être dans le même répertoire que celui où vous exécutez votre serveur. Je conseillerais de le faire comme dans l'un des exemples suivants:
Pour une installation globale:
npm install -g mysql
Pour une installation locale:
1- Ajoutez-le à votre package.jsondans les dépendances:
"dependencies":{"mysql":"~2.3.2",...
2- courir npm install
Notez que pour que les connexions se produisent, vous devrez également exécuter le serveur mysql (qui est indépendant du nœud)
Pour installer le serveur MySQL:
Il existe un tas de tutoriels qui expliquent cela, et cela dépend un peu du système d'exploitation. Accédez simplement à Google et recherchez how to install mysql server [Ubuntu|MacOSX|Windows]. Mais en une phrase: vous devez aller sur http://www.mysql.com/downloads/ et l'installer.
Ce code semble Cannot read property 'release' of undefined
foiré
4
Imo, vous devriez essayer MySQL Connector / Node.js qui est le pilote Node.js officiel pour MySQL. Voir ref-1 et ref-2 pour une explication détaillée. J'ai essayé mysqljs / mysql qui est disponible ici , mais je ne trouve pas de documentation détaillée sur les classes, les méthodes et les propriétés de cette bibliothèque.
J'ai donc opté pour la norme MySQL Connector/Node.jsavec X DevAPI, car il s'agit d'une bibliothèque client asynchrone basée sur Promise et qui fournit une bonne documentation. Jetez un œil à l'extrait de code suivant:
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);});
KnexJs peut être utilisé comme générateur de requêtes SQL à la fois dans Node.JS et dans le navigateur. Je le trouve facile à utiliser. Laissez-le essayer - 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 mssqlvar knex =require('knex')({
client:'mysql',
connection:{
host :'127.0.0.1',
user :'your_database_user',
password :'your_database_password',
database :'myapp_test'}});
Vous pouvez également essayer un nouvel effort connu sous le nom de Node.js DB qui vise à fournir un cadre commun pour plusieurs moteurs de base de données. Il est construit avec C ++ donc les performances sont garanties.
Plus précisément, vous pouvez utiliser son pilote db-mysql pour la prise en charge de Node.js MySQL .
node-db n'est plus pris en charge (inactif pendant 8 mois, utilise node-waf obsolète) et l'installation a échoué pour moi.
Yogu
18
"Il est construit avec C ++ donc les performances sont garanties" - le simple fait d'utiliser C ++ ne garantit pas les performances, il doit encore être programmé correctement.
developerbmw
Non seulement le noeud-db n'est pas pris en charge, le lien est mort-redirigé - redirigé vers une sorte de site publicitaire tout à l'heure. Downvoting.
nurdglaw
2
@Mariano, Link Down
Pacerier
0
connectez la base de données mysql en installant une bibliothèque. ici, choisi le module node-mysql stable et facile à utiliser.
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();
Pour autant que je sache, les versions alpha ne doivent jamais être considérées comme «stables». Corrige moi si je me trompe. Alpha a la possibilité de modifier radicalement son API avant de passer à la version finale, ce qui est très indésirable dans le code de production (et même de développement). Autrement dit, si la numérotation des versions suit les directives semver.org .
Robin van Baalen
1
les guillemets "intelligents" ('') ne sont pas aussi intelligents dans les fichiers js.
glyphe
J'aime ce commentaire car il montre où mettre le nom de la base de données
Boris Ivanov
0
Vous pouvez ignorer l'ORM, les générateurs, etc. et simplifier votre gestion DB / SQL à l'aide de sqleret 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
fonction.Réponses:
Consultez la liste des modules node.js
node-mysql semble assez simple:
Requêtes:
la source
require
ing d'une bibliothèque javascriptnode-mysql est probablement l'un des meilleurs modules utilisés pour travailler avec la base de données MySQL qui est activement maintenue et bien documentée.
la source
Puisqu'il s'agit d'un ancien fil ajoutant simplement une mise à jour:
Pour installer le pilote MySQL node.js:
Si vous exécutez simplement
npm install mysql
, vous devez être dans le même répertoire que celui où vous exécutez votre serveur. Je conseillerais de le faire comme dans l'un des exemples suivants:Pour une installation globale:
Pour une installation locale:
1- Ajoutez-le à votre
package.json
dans les dépendances:2- courir
npm install
Notez que pour que les connexions se produisent, vous devrez également exécuter le serveur mysql (qui est indépendant du nœud)
Pour installer le serveur MySQL:
Il existe un tas de tutoriels qui expliquent cela, et cela dépend un peu du système d'exploitation. Accédez simplement à Google et recherchez
how to install mysql server [Ubuntu|MacOSX|Windows]
. Mais en une phrase: vous devez aller sur http://www.mysql.com/downloads/ et l'installer.la source
npm install --save mysql
va l'installer l'ajouterpackage.json
automatiquement à votreVoici le code de production qui peut vous aider.
Package.json
Voici le fichier serveur.
Référence: https://codeforgeek.com/2015/01/nodejs-mysql-tutorial/
la source
Cannot read property 'release' of undefined
Imo, vous devriez essayer MySQL Connector / Node.js qui est le pilote Node.js officiel pour MySQL. Voir ref-1 et ref-2 pour une explication détaillée. J'ai essayé mysqljs / mysql qui est disponible ici , mais je ne trouve pas de documentation détaillée sur les classes, les méthodes et les propriétés de cette bibliothèque.
J'ai donc opté pour la norme
MySQL Connector/Node.js
avecX DevAPI
, car il s'agit d'une bibliothèque client asynchrone basée sur Promise et qui fournit une bonne documentation. Jetez un œil à l'extrait de code suivant:la source
KnexJs peut être utilisé comme générateur de requêtes SQL à la fois dans Node.JS et dans le navigateur. Je le trouve facile à utiliser. Laissez-le essayer - Knex.js
Vous pouvez l'utiliser comme ceci
ou
la source
Vous pouvez également essayer un nouvel effort connu sous le nom de Node.js DB qui vise à fournir un cadre commun pour plusieurs moteurs de base de données. Il est construit avec C ++ donc les performances sont garanties.
Plus précisément, vous pouvez utiliser son pilote db-mysql pour la prise en charge de Node.js MySQL .
la source
connectez la base de données mysql en installant une bibliothèque. ici, choisi le module node-mysql stable et facile à utiliser.
Exemple de connexion et d'interrogation pour NodeJS mysql
la source
Vous pouvez ignorer l'ORM, les générateurs, etc. et simplifier votre gestion DB / SQL à l'aide de
sqler
etsqler-mdb
.la source