node連接mysq

1.首先下載mysql

npm  install mysql --save

2.下載express(這裏基於express框架介紹)

npm install express --save

3.創建連接,設置連接字段和參數
在這裏插入圖片描述
4.連接測試
在這裏插入圖片描述
5.調用connection的 query方法
第一個參數是查詢的語句,第二個參數是一個數組包含查詢的結果,
第三個參數也是一個數組,裏面包含着對每個數據的解釋,比如當前數據屬於哪個庫,那張表等等

在這裏插入圖片描述
6.關閉連接
在這裏插入圖片描述
附源碼

var express=require('express')
var mysql=require('mysql')

var app=express()


var connection=mysql.createConnection({
    "host": 'localhost',
    "user": 'root',
    "password": '123456',
    "database": 'sermatec',
})


connection.connect(function (err) {
    if(err){
        throw err;
        console.log('connect failed')
        return ;
    }
})



// 訪問首頁 查詢所有數據
app.get('/',function (req,res) {
    var sql ='select * from test'
    connection.query(sql,function (err,result,felid) {
        if(err){
            throw err;
            return ;
        }
        res.send(result)
    })
    connection.end(function (err) {
        if(err){
            throw err;
            console.log('close failed')
            return ;
        }
        console.log('close succeed')
    })
})

app.listen(9090,function () {
    console.log('9090')
})

注意,注意,注意!!!!
這種方式雖然可以連接成功,但是當服務啓動時,每次只能查詢一次,就是說刷新頁面就會報錯,只有重啓服務才能再次查詢。因爲我們每次查詢結束後就將連接關閉了,如果將後面 connection.end關閉連接去掉就可以連續訪問,但是總不能不關閉連接吧,所以要將創建連接的代碼放在路由裏面 ,這樣每次訪問的時候就會新建一個連接然後在關閉

var express=require('express')
var mysql=require('mysql')

var app=express()

// 訪問首頁 查詢所有數據
app.get('/',function (req,res) {
   
   var connection=mysql.createConnection({
    "host": 'localhost',
    "user": 'root',
    "password": '123456',
    "database": 'sermatec',
	})


	connection.connect(function (err) {
	    if(err){
	        throw err;
	        console.log('connect failed')
	        return ;
	    }
	})

    var sql ='select * from test'
    connection.query(sql,function (err,result,felid) {
        if(err){
            throw err;
            return ;
        }
        res.send(result)
    })
    connection.end(function (err) {
        if(err){
            throw err;
            console.log('close failed')
            return ;
        }
        console.log('close succeed')
    })
})

app.listen(9090,function () {
    console.log('9090')
})

第二種方式:使用連接池


var express=require('express')

var mysql=require('mysql')

var app=express()
// 創建連接池
var pool=mysql.createPool({
    "host": 'localhost',
    "user": 'root',
    "password": '123456',
    "database": 'sermatec',
})



app.get('/',function (req,res) {

  // 從連接池中取連接
    pool.getConnection(function (err,connection) {
        if(err){
            throw err;
            console.log('connect failed')
            return ;
        }
        
        var sql ='select * from test'
        connection.query(sql,function (err,result,felid) {

            if(err){
                throw err;
                return ;
            }

            res.send(result)
        })

        connection.end(function (err) {
            if(err){
                throw err;
                console.log('close failed')
                return ;
            }
            console.log('close succeed')
        })

    })

})

app.listen(9090,function () {
    console.log('9090')
})

模塊化
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章