国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

Node.js使用MySQL連接池的方法實例

2024-05-06 16:42:29
字體:
來源:轉載
供稿:網友

本文實例講述了Node.js使用MySQL連接池的方法。分享給大家供大家參考,具體如下:

Nodejs如何使用MySQL

Nodejs要連接MySQL,可以使用Nodejs的MysQL驅動來實現。比如,我們這里使用"node-mysql"連接數據庫。我們使用下面的方式來連接數據庫:

首先,我們需要使用nodejs的包管理工具(npm)安裝mysql的驅動。命令行如下:

npm install musql

現在,要在js文件中使用mysql,添加下面的代碼到你的文件中:

var mysql = require('mysql');

接下來,我們就可以使用這個模塊來連接MySQL數據庫。當然要連接數據庫需要指定MySQL Server的host name,用戶名和密碼等。還有其他的很多選項可以設置,比如數據庫的時區、socketPath、和本地地址等。

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

那么,下面的代碼會為你建立一個新的連接。

connection.connect();

使用這個連接對象,我們可以像下面一樣查詢數據庫。我們可以使用connection.escape()方法防止sql注入。

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

最后,我們可以用兩種方法關閉連接。用connection.end或者connection.destroy

下面的表達式會確保所有隊列中的查詢在數據庫連接關閉前都會被執行。請注意,這里有一個回調函數。

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

下面的表達式會立即關閉數據庫連接。并且沒有回調函數或者觸發任何事件。

connection.destroy( );

Nodejs使用MysQL的連接池

使用連接池可以幫助我們更好的管理數據庫連接。數據庫連接池可以限制連接的最大數量,復用已有的連接等。

首先,我們需要創建一個連接池:

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

其次,我們可以從創建的連接池中獲取到一個我們需要的連接:

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

使用回調函數的參數connection來查詢數據庫。最后使用connection.realease()方法釋放數據庫連接。

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

執行多條查詢語句

為了安全起見,默認情況下是不允許執行多條查詢語句的。要使用多條查詢語句的功能,就需要在創建數據庫連接的時候打開這一功能:

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

這一功能打開以后,你就可以像下面的例子一樣同時使用多條查詢語句:

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 }});

node.js中mysql連接池的使用

如果不想程序在查詢數據時卡死或等待過長時間,一般不推薦在node中開啟一個連接后全部查詢都用這個鏈接并且不關閉,因為,你試了就知道為什么了

Node.js mysql連接池模塊

1. 安裝node的mysql模塊

npm -install -g node-mysql

2. 建立一個類庫,就叫mysql.js吧,然后內容如下:

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. 在js類使用如下

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

希望本文所述對大家nodejs程序設計有所幫助。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 周口市| 合肥市| 秦皇岛市| 珲春市| 惠东县| 宁海县| 古交市| 双鸭山市| 苏尼特左旗| 崇阳县| 定边县| 攀枝花市| 萨嘎县| 轮台县| 无棣县| 崇文区| 宾阳县| 从江县| 侯马市| 鄂托克旗| 和平县| 胶南市| 瓮安县| 翁源县| 安龙县| 辽阳县| 布尔津县| 芜湖县| 乐昌市| 德格县| 吴堡县| 桐梓县| 平塘县| 普安县| 紫金县| 威远县| 景德镇市| 福鼎市| 阿拉善盟| 永顺县| 盐亭县|