溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

node+mysql數據庫連接池連接的方法是什么

發布時間:2023-04-18 16:04:19 來源:億速云 閱讀:231 作者:iii 欄目:開發技術

這篇“node+mysql數據庫連接池連接的方法是什么”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“node+mysql數據庫連接池連接的方法是什么”文章吧。

mysql有兩種連接方式:一種是直接連接 另一種是池化連接,我們這篇講的是池化連接。

為了讓解惑,我簡答的寫份直接連接的代碼,如下:

var mysql = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'ac',
  password : '123456',
  database : 'textPro'
});
 
connection.connect();
 
connection.query('SELECT * from1 userInfo', function (error, results, fields) {
  if (error) throw error;
  console.log('The solution is: ', results);
});
 
connection.end();

createConnection和createPool的區別是: createPool(連接池)連接可以更加合理的利用服務器資料,減少資料浪費

安裝之后在db/index.js中開始編寫:

const mysql = require("mysql")
 
//創建連接池
const db= mysql.createPool({  
    host : 'localhost', //連接主機
    port : 3306,   //端口號
    database : 'test',  //連接的是哪一個庫
    user : 'root',   //用戶名
    password : '',    //密碼
    connectionLimit : 50, //用于指定連接池中最大的鏈接數,默認屬性值為10. 
    //用于指定允許掛起的最大連接數,如果掛起的連接數超過該數值,就會立即拋出一個錯誤,
    //默認屬性值為0.代表不允許被掛起的最大連接數。
    queueLimit:3 
})

建立了連接池之后,可以直接使用連接池對象的getConnection方法從連接池中獲取一個連接,如果連接池中沒有可用連接,將隱式的建立一個數據庫連接。

const mysql = require("mysql")
 
//創建連接池
const db= mysql.createPool({  
    host : 'localhost', //連接主機
    port : 3306,   //端口號
    database : 'test',  //連接的是哪一個庫
    user : 'root',   //用戶名
    password : '',    //密碼
    connectionLimit : 50, //用于指定連接池中最大的鏈接數,默認屬性值為10. 
    //用于指定允許掛起的最大連接數,如果掛起的連接數超過該數值,就會立即拋出一個錯誤,
    //默認屬性值為0.代表不允許被掛起的最大連接數。
    queueLimit:3 
})  
 
module.exports.query = (sql, values.callback) => {
  //err: 該參數是指操作失敗時的錯誤對象。
  //connection: 該值為一個對象,代表獲取到的連接對象。當連接失敗時,該值為undefined。
  db.getConnection(function(err, connection) {
    if (err) {
      console.log('與mysql數據庫建立連接失敗');
      pool.releaseConnection(); //釋放鏈接
    } else {
      console.log('與mysql數據庫建立連接成功');
      connection.query(sql,values,(err, res) => {
        if (err) {
          console.log('執行sql語句失敗,查詢數據失敗');
          //connection.release() 當一個連接不需要使用時,使用該方法將其歸還到連接池中 release釋放
          connection.release();
          callback(err,null)
        } else {
           console.log('執行sql語句成功');
           callback(null,res)
          //pool.end() 當一個連接池不需要使用時,可以使用該方法關閉連接池
          pool.end();
        }
      })
    }
  })
}

引入 調用db模塊

const query=require('./db').query;
let sql='SELECT * FROM class WHERE class_id=? AND class_name=?' 
let userId=1;
let userName='阿辰';
query(sql,[userId,userName],(err,res)=>{
    if(err){
        console.log('發生了錯誤***',err)
        return
    }
console.log('找到了',res)
})

const query=require('./db').query與const query=require('./db')區別

  • 第一種寫法只獲取到了"./db"模塊中的query函數,如果需要使用其他導出項,則需要再次獲取。

  • 第二種寫法獲取到了"./db"模塊導出的所有項,不需要在代碼中反復獲取不同的導出項。

以上就是關于“node+mysql數據庫連接池連接的方法是什么”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女