亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

關(guān)于node+mysql數(shù)據(jù)庫(kù)連接池連接

 更新時(shí)間:2023年04月18日 10:15:42   作者:阿晨學(xué)前端  
這篇文章主要介紹了關(guān)于node+mysql數(shù)據(jù)庫(kù)連接池連接,mysql有兩種連接方式:一種是直接連接 另一種是池化連接,我們這篇講的是池化連接,需要的朋友可以參考下

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

為了讓解惑,我簡(jiǎn)答的寫(xiě)份直接連接的代碼,如下:

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的區(qū)別是: createPool(連接池)連接可以更加合理的利用服務(wù)器資料,減少資料浪費(fèi)

安裝之后在db/index.js中開(kāi)始編寫(xiě):

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

建立了連接池之后,可以直接使用連接池對(duì)象的getConnection方法從連接池中獲取一個(gè)連接,如果連接池中沒(méi)有可用連接,將隱式的建立一個(gè)數(shù)據(jù)庫(kù)連接。

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

引入 調(diào)用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('發(fā)生了錯(cuò)誤***',err)
        return
    }
console.log('找到了',res)
})

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

  • 第一種寫(xiě)法只獲取到了"./db"模塊中的query函數(shù),如果需要使用其他導(dǎo)出項(xiàng),則需要再次獲取。
  • 第二種寫(xiě)法獲取到了"./db"模塊導(dǎo)出的所有項(xiàng),不需要在代碼中反復(fù)獲取不同的導(dǎo)出項(xiàng)。

到此這篇關(guān)于關(guān)于node+mysql數(shù)據(jù)庫(kù)連接池連接的文章就介紹到這了,更多相關(guān)node+mysql數(shù)據(jù)庫(kù)連接內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決node-sass偶爾安裝失敗的方法小結(jié)

    解決node-sass偶爾安裝失敗的方法小結(jié)

    這篇文章主要介紹了解決node-sass偶爾安裝失敗的方法小結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • nodejs實(shí)現(xiàn)發(fā)出蜂鳴聲音(系統(tǒng)報(bào)警聲)的方法

    nodejs實(shí)現(xiàn)發(fā)出蜂鳴聲音(系統(tǒng)報(bào)警聲)的方法

    這篇文章主要介紹了nodejs實(shí)現(xiàn)發(fā)出蜂鳴聲音(系統(tǒng)報(bào)警聲)的方法,結(jié)合實(shí)例形式分析了nodejs發(fā)出蜂鳴聲的原理及具體應(yīng)用方法,需要的朋友可以參考下
    2017-01-01
  • 用NodeJS實(shí)現(xiàn)批量查詢(xún)地理位置的經(jīng)緯度接口

    用NodeJS實(shí)現(xiàn)批量查詢(xún)地理位置的經(jīng)緯度接口

    最近要實(shí)現(xiàn)一個(gè)顯示各個(gè)城市信息的功能,后臺(tái)一看包含一堆城市的excel,發(fā)現(xiàn)不僅有每個(gè)省的直轄市,還有二三線等的城市,數(shù)量還不少,一個(gè)個(gè)去查還挺浪費(fèi)時(shí)間的,那為什么不寫(xiě)個(gè)腳本去實(shí)現(xiàn)批量查詢(xún)呢。
    2016-08-08
  • NodeJS連接MySQL數(shù)據(jù)庫(kù)并進(jìn)行增刪改查操作詳解

    NodeJS連接MySQL數(shù)據(jù)庫(kù)并進(jìn)行增刪改查操作詳解

    本篇是使用NodeJS的模塊MySQL操作MySQL數(shù)據(jù)庫(kù)的基礎(chǔ)教程,連接MySQL數(shù)據(jù)庫(kù)并進(jìn)行增刪改查操作詳解,需要的朋友可以參考下
    2024-02-02
  • Node.js API詳解之 querystring用法實(shí)例分析

    Node.js API詳解之 querystring用法實(shí)例分析

    這篇文章主要介紹了Node.js API詳解之 querystring用法,結(jié)合實(shí)例形式分析了Node.js API中querystring的基本功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • 深入淺出了解Node.js Streams

    深入淺出了解Node.js Streams

    這篇文章講了了解流的用途,為什么它們?nèi)绱酥匾?,以及如何使用它們。下面我們?lái)一起學(xué)習(xí)吧
    2019-05-05
  • NodeJS測(cè)試框架mocha入門(mén)教程

    NodeJS測(cè)試框架mocha入門(mén)教程

    本文給大家簡(jiǎn)單介紹了NodeJS里最常用的測(cè)試框架--mocha的安裝以及簡(jiǎn)單的使用方法,支持直接在browser上跑Javascript代碼測(cè)試,這里推薦給大家
    2017-03-03
  • Node.js中的流(Stream)的作用詳解

    Node.js中的流(Stream)的作用詳解

    在 Node.js 中,stream模塊提供了用于實(shí)現(xiàn)流接口的 API,但是很多內(nèi)置模塊都提供了關(guān)于流的 API,所以通常不需要顯式的調(diào)用 stream 模塊來(lái)使用流,本文給大家介紹一下Node.js中的流(Stream)有什么作用,需要的朋友可以參考下
    2023-08-08
  • koa2使用ejs和nunjucks作為模板引擎的使用

    koa2使用ejs和nunjucks作為模板引擎的使用

    這篇文章主要介紹了koa2使用ejs和nunjucks作為模板引擎的使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • 淺談node.js中間件有哪些類(lèi)型

    淺談node.js中間件有哪些類(lèi)型

    這篇文章主要介紹了node.js中間件有哪些類(lèi)型,對(duì)中間件感興趣的同學(xué),可以參考下
    2021-04-04

最新評(píng)論