Maison >interface Web >js tutoriel >Utiliser le pool de connexions MySQL avec Node.js

Utiliser le pool de connexions MySQL avec Node.js

亚连
亚连original
2018-06-06 11:20:251661parcourir

Cet article présente principalement la méthode de Node.js utilisant le pool de connexions MySQL et analyse l'installation des modules associés, la connexion, les requêtes et d'autres compétences d'utilisation de nodejs exploitant le pool de connexions MySQL sur la base d'exemples spécifiques. Les amis dans le besoin peuvent s'y référer.

L'exemple de cet article décrit comment Node.js utilise le pool de connexions MySQL. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Comment utiliser MySQL dans Nodejs

Pour connecter Nodejs à MySQL, vous pouvez utiliser le pilote MysQL de Nodejs. Par exemple, nous utilisons ici "node-mysql" pour nous connecter à la base de données. Nous utilisons la méthode suivante pour nous connecter à la base de données :

Tout d'abord, nous devons utiliser l'outil de gestion de packages nodejs (npm) pour installer le pilote mysql. La ligne de commande est la suivante :

npm install musql

Maintenant, pour utiliser mysql dans un fichier js, ajoutez le code suivant à votre fichier :

var mysql = require('mysql');

Ensuite, nous pouvons utiliser ce module pour vous connecter à la base de données MySQL. Bien entendu, pour vous connecter à la base de données, vous devez spécifier le nom d'hôte, le nom d'utilisateur et le mot de passe du serveur MySQL. De nombreuses autres options peuvent être définies, telles que le fuseau horaire de la base de données, socketPath et l'adresse locale.

var connection = mysql.createConnection({
  host : "hostName",
  user : "username",
  password: "password"
});

Ensuite, le code suivant créera une nouvelle connexion pour vous.

connection.connect();

En utilisant cet objet de connexion, nous pouvons interroger la base de données comme suit. Nous pouvons utiliser la méthode connection.escape() pour empêcher l'injection SQL.

connection.query("use database1");
 var strQuery = "select * from table1";
 connection.query( strQuery, function(err, rows){
  if(err) {
   throw err;
  }else{
   console.log( rows );
  }
});

Enfin, nous pouvons fermer la connexion de deux manières. Utilisez connection.end ou connection.destroy.

L'expression suivante garantira que toutes les requêtes en file d'attente seront exécutées avant la fermeture de la connexion à la base de données. Notez qu'il existe une fonction de rappel ici.

connection.end(function(err){
// Do something after the connection is gracefully terminated.
});

L'expression suivante fermera immédiatement la connexion à la base de données. Et il n'y a aucune fonction de rappel ni aucun événement déclenché.

connection.destroy( );

Nodejs utilise le pool de connexions de MysQL

L'utilisation d'un pool de connexions peut nous aider à mieux gérer les connexions aux bases de données. Le pool de connexions à la base de données peut limiter le nombre maximum de connexions, réutiliser les connexions existantes, etc.

Tout d'abord, nous devons créer un pool de connexions :

var mysql = require('mysql');
var pool = mysql.createPool({
 host : "hostName",
 user : "username",
 password: "password"
});

Deuxièmement, nous pouvons obtenir la connexion dont nous avons besoin à partir du pool de connexions créé :

pool.getConnection(function(err, connection){
});

Utiliser le paramètre de connexion de la fonction de rappel pour interroger la base de données. Enfin, utilisez la méthode connection.realease() pour libérer la connexion à la base de données.

pool.getConnection(function(err, connection){
 connection.query( "select * from table1", function(err, rows){
  if(err) {
   throw err;
  }else{
   console.log( rows );
  }
 });
 connection.release();
});

Exécuter plusieurs instructions de requête

Pour des raisons de sécurité, l'exécution de plusieurs instructions de requête n'est pas autorisée par défaut. Pour utiliser la fonction de plusieurs instructions de requête, vous devez activer cette fonction lors de la création d'une connexion à la base de données :

var connection = mysql.createConnection( { multipleStatements: true } );

Une fois cette fonction activée, vous pouvez utiliser plusieurs requêtes en même temps comme dans l'exemple Déclaration ci-dessous :

connection.query('select column1; select column2; select column3;', function(err, result){
 if(err){
  throw err;
 }else{
  console.log(result[0]);  // Column1 as a result
  console.log(result[1]);  // Column2 as a result
  console.log(result[2]);  // Column3 as a result
 }
});

Utilisation du pool de connexions MySQL dans node.js

Si vous ne voulez pas que le programme reste bloqué ou attendre trop longtemps lors de l'interrogation des données Pendant longtemps, il est généralement déconseillé d'utiliser ce lien pour toutes les requêtes après avoir ouvert une connexion dans le nœud et de ne pas la fermer, car vous saurez pourquoi après l'avoir essayé

Module de pool de connexion mysql Node.js

1. Installez le module mysql du nœud

npm -install -g node-mysql

2 Créez une bibliothèque de classes, appelons-la mysql.js, puis le contenu est le suivant. suit :

var mysql=require("mysql");
var pool = mysql.createPool({
 host: 'localhost',
 user: 'user',
 password: 'password',
 database: 'database',
 port: port
});
var query=function(sql,callback){
 pool.getConnection(function(err,conn){
  if(err){
   callback(err,null,null);
  }else{
   conn.query(sql,function(qerr,vals,fields){
    //释放连接
    conn.release();
    //事件驱动回调
    callback(qerr,vals,fields);
   });
  }
 });
};
module.exports=query;

3. Utilisez-le dans la classe js Ce qui suit

var query=require("./lib/mysql.js");
query("select 1 from 1",function(err,vals,fields){
 //do something
});

Ce qui précède est ce que j'ai compilé pour tout le monde. J'espère qu'il sera utile à tout le monde à l'avenir. .

Articles connexes :

Méthode de configuration sans dev-server.js dans vue2.0

Utilisation de la méthode Vue dans Vue. ajouter dynamiquement des attributs d'objet

Comment lier dynamiquement les attributs des éléments de formulaire dans vue

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn