Node連線MySQL並封裝其增刪查改

LenhartGG發表於2019-01-24

Node連線Mysql

說到node,可能大家會想到MOngoDB作為資料庫,這裡將會介紹node與mysql的連線,並分享了封裝好的例項程式碼,在專案開發中可直接使用。下一篇部落格將會講node連線MongoDB。

安裝Mysql模組

1
複製程式碼
npm install mysql
複製程式碼

連線Mysql

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
複製程式碼
const mysql = require('mysql');

let connection = mysql.createConnection({
    host : 'localhost',
    user : 'root', 
    password : 'password',
    database : 'test'
});

connection.connect(function(err) {
  if (err) {
    console.error('連線失敗: ' + err.stack);
    return;
  }

  console.log('連線成功 id ' + connection.threadId);
});
複製程式碼

host:連線的伺服器
user:資料庫使用者名稱
password:設定的MySQL密碼
database: 要連線的資料庫名

常用的SQL語句

具體的使用這裡不做詳細說明,包括select、insert、update、delete等語句。

Node操作Mysql

查詢

1
2
3
4
5
6
複製程式碼
connection.query('SELECT * FROM t_user WHERE username = "whg"', (err, results, fields) => {
    if(err){
        console.log(err);
    }
    console.log(results);
})
複製程式碼

新增

1
2
3
4
5
6
複製程式碼
connection.query('INSERT INTO t_user(username, pass) VALUES(?, ?)',['whg', '123'], (err, results) => {
    if(err){
        console.log(err);
    }
    console.log(results);
})
複製程式碼

刪除

1
2
3
4
5
6
複製程式碼
connection.query('DELETE FROM t_user  WHERE id = 1', (err, results) => {
    if(err){
        console.log(err);
    }
    console.log(results);
})
複製程式碼

更新

1
2
3
4
5
6
複製程式碼
connection.query('UPDATE t_user SET pass = "321" WHERE username = "whg"', (err, results) => {
    if(err){
        console.log(err);
    }
    console.log(results);
})
複製程式碼

結束連線

1
2
3
4
複製程式碼
connection.end(function(err) {
  
});
connection.destroy();
複製程式碼

這兩種都行,第二種是強制結束。

封裝

說了這麼多,感覺操作起來還是挺簡單的。在實際開發中,我們想要操作起來更方便,那就讓我們自己封裝一下來使用。直接上程式碼:

封裝好的程式碼

1.資料庫配置檔案

1
2
3
4
5
6
7
8
複製程式碼
//配置連結資料庫引數
module.exports = {
    host : 'localhost',
    port : 3306,//埠號
    database : 'nodetest',//資料庫名
    user : 'root',//資料庫使用者名稱
    password : '123456'//資料庫密碼
};
複製程式碼

2.封裝、暴露方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
複製程式碼
let mysql = require('mysql');//引入mysql模組
var databaseConfig = require('./mysql.config');  //引入資料庫配置模組中的資料

//向外暴露方法
module.exports = {
    query : function(sql,params,callback){
        //每次使用的時候需要建立連結,資料操作完成之後要關閉連線
        var connection = mysql.createConnection(databaseConfig);        
        connection.connect(function(err){
            if(err){
                console.log('資料庫連結失敗');
                throw err;
            }
         //開始資料操作
         //傳入三個引數,第一個引數sql語句,第二個引數sql語句中需要的資料,第三個引數回撥函式
        connection.query( sql, params, function(err,results,fields ){
           if(err){
                console.log('資料操作失敗');
                throw err;
            }
            //將查詢出來的資料返回給回撥函式
            callback && callback(results, fields);
            //results作為資料操作後的結果,fields作為資料庫連線的一些欄位
            //停止連結資料庫,必須再查詢語句後,要不然一呼叫這個方法,就直接停止連結,資料操作就會失敗
             connection.end(function(err){
                  if(err){
                      console.log('關閉資料庫連線失敗!');
                      throw err;
                  }
              });
           });
       });
    }
};
複製程式碼

3.演示例項

1
2
3
4
5
6
7
8
9
10
11
12
複製程式碼
var db=require('../model/mysql.js');
// 查詢例項
db.query('select * from t_user', [],function(result,fields){
    console.log('查詢結果:');
    console.log(result);
});
//新增例項
var  addSql = 'INSERT INTO websites(username,password) VALUES(?,?)';
var  addSqlParams =['咕嚕先森', '666'];
db.query(addSql,addSqlParams,function(result,fields){
    console.log('新增成功')
})
複製程式碼

結束

想要使用的朋友,可以直接把封裝好的兩個檔案copy到專案中,改一下配置就可以使用了,大大提高開發效率。下一篇將會分享Node連線MongoDB。


相關文章