Je viens de commencer à entrer dans Node.js. Je viens de PHP, je suis donc assez habitué à utiliser MySQL pour tous mes besoins en base de données.
Comment utiliser MySQL avec Node.js?
Découvrez la liste des modules node.js
node-mysql semble assez simple:
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'
node-mysql est probablement l'un des meilleurs modules disponibles pour travailler avec la base de données MySQL, qui est activement maintenue et bien documentée.
Comme il s'agit d'un ancien fil qui vient d'ajouter une mise à jour:
Si vous exécutez uniquement npm install mysql
, vous devez vous trouver 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:
npm install -g mysql
1- Ajoutez-le à votre package.json
dans les dépendances:
"dependencies": {
"mysql": "~2.3.2",
...
2- lancer npm install
Notez que pour que les connexions se produisent, vous devez également exécuter le serveur mysql (indépendant du noeud).
Il existe de nombreux tutoriels qui expliquent cela, et cela dépend un peu du système d'exploitation. Il suffit d'aller sur Google et recherchez how to install mysql server [Ubuntu|MacOSX|Windows]
. Mais dans une phrase: vous devez aller à http://www.mysql.com/downloads/ et l’installer.
Voici le code de production qui peut vous aider.
Package.json
{
"name": "node-mysql",
"version": "0.0.1",
"dependencies": {
"express": "^4.10.6",
"mysql": "^2.5.4"
}
}
Voici le fichier serveur.
var express = require("express");
var mysql = require('mysql');
var app = express();
var pool = mysql.createPool({
connectionLimit : 100, //important
Host : 'localhost',
user : 'root',
password : '',
database : 'address_book',
debug : false
});
function handle_database(req,res) {
pool.getConnection(function(err,connection){
if (err) {
connection.release();
res.json({"code" : 100, "status" : "Error in connection database"});
return;
}
console.log('connected as id ' + connection.threadId);
connection.query("select * from user",function(err,rows){
connection.release();
if(!err) {
res.json(rows);
}
});
connection.on('error', function(err) {
res.json({"code" : 100, "status" : "Error in connection database"});
return;
});
});
}
app.get("/",function(req,res){-
handle_database(req,res);
});
app.listen(3000);
Référence: https://codeforgeek.com/2015/01/nodejs-mysql-tutorial/
KnexJs peut être utilisé comme générateur de requêtes SQL dans Node.JS et le navigateur. Je le trouve facile à utiliser. Laissons l’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 mssql
var knex = require('knex')({
client: 'mysql',
connection: {
Host : '127.0.0.1',
user : 'your_database_user',
password : 'your_database_password',
database : 'myapp_test'
}
});
Vous pouvez l'utiliser comme ça
knex.select('*').from('users')
ou
knex('users').where({
first_name: 'Test',
last_name: 'User'
}).select('id')
Pour votre part, vous devriez essayer MySQL Connector/Node.js, qui est le pilote officiel Node.js 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.
Je suis donc passé à la norme MySQL Connector/Node.js
avec X DevAPI
, car il s'agit d'une bibliothèque client asynchrone basée sur Promise et fournit une bonne documentation. . Jetez un coup d'œ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);
});
Vous pouvez également essayer un nouvel effort appelé 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 support de Node.js MySQL .
connectez la base de données mysql en installant une bibliothèque. ici, choisi le module node-mysql stable et facile à utiliser.
npm install [email protected]
var http = require('http'),
mysql = require('mysql');
var sqlInfo = {
Host: 'localhost',
user: 'root',
password: 'urpass',
database: 'dbname'
}
client = mysql.createConnection(sqlInfo);
client.connect();