這次給大家?guī)韓ode.js如何通過連接池實(shí)現(xiàn)連接mysql ,下面就是實(shí)戰(zhàn)案例,一起來看一下。
首先來看一下什么是數(shù)據(jù)庫的連接池(來自百度百科):數(shù)據(jù)庫連接池負(fù)責(zé)分配、管理和釋放數(shù)據(jù)庫連接,它允許應(yīng)用程序重復(fù)使用一個(gè)現(xiàn)有的數(shù)據(jù)庫連接,而不是再重新建立一個(gè);釋放空閑時(shí)間超過最大空閑時(shí)間的數(shù)據(jù)庫連接來避免因?yàn)闆]有釋放數(shù)據(jù)庫連接而引起的數(shù)據(jù)庫連接遺漏。這項(xiàng)技術(shù)能明顯提高對(duì)數(shù)據(jù)庫操作的性能。
接著,我們來看node.js 怎么實(shí)現(xiàn)數(shù)據(jù)庫的連接池,這里,用mysql為例;
第一步,npm安裝mysql模塊
$ npm install mysql -S
第一步,npm安裝mysql模塊
var mysql = require('mysql');// 創(chuàng)建 mysql 連接池資源var pool = mysql.createPool({ host : 'localhost', user : 'root', password : 'root', database : 'test'}); exports.query = function(sql, arr, callback){ //建立鏈接 pool.getConnection(function(err,connection){ if(err){throw err;return;} connection.query(sql,arr,function(error,results,fields){ //將鏈接返回到連接池中,準(zhǔn)備由其他人重復(fù)使用 connection.release(); if(error) throw error; //執(zhí)行回調(diào)函數(shù),將數(shù)據(jù)返回 callback && callback(results,fields); }); }); };
最后,我們就可以在其他地方調(diào)用這個(gè)模塊來進(jìn)行高效率的數(shù)據(jù)庫查詢了:
var db = require('./../model/db'); //require的路徑是我們的db模塊相對(duì)于本文件的路徑db.query('select * from user', [], function(results,fields){ //查詢后的回調(diào) //Results代表是查詢的結(jié)果,如果是插入修改等操作,則返回影響數(shù)據(jù)庫信息的對(duì)象 // fields代表查詢的字段信息}
相關(guān)推薦:
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com