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

LenhartGG發表於2019-01-24

Node 連線 mysql

在這篇筆記中,將會介紹node與mysql的連線,並且會分享封裝好的程式碼,在專案中是可以直接使用。

安裝 mysql 模組

npm install mysql

連線 mysql

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

查詢

connection.query(`SELECT * FROM t_user WHERE username = "whg"`, (err, results, fields) => {
    if(err){
        console.log(err);
    }
    console.log(results);
})

新增

connection.query(`INSERT INTO t_user(username, pass) VALUES(?, ?)`,[`whg`, `123`], (err, results) => {
    if(err){
        console.log(err);
    }
    console.log(results);
})

刪除

connection.query(`DELETE FROM t_user  WHERE id = 1`, (err, results) => {
    if(err){
        console.log(err);
    }
    console.log(results);
})

更新

connection.query(`UPDATE t_user SET pass = "321" WHERE username = "whg"`, (err, results) => {
    if(err){
        console.log(err);
    }
    console.log(results);
})

結束連線

connection.end(function(err) {
  
});
connection.destroy();

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

封裝

封裝好的程式碼

1.資料庫配置檔案

//配置連結資料庫引數
module.exports = {
    host : `localhost`,
    port : 3306,//埠號
    database : `nodetest`,//資料庫名
    user : `root`,//資料庫使用者名稱
    password : `123456`//資料庫密碼
};

2.封裝、暴露方法

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.演示例項

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+mysql連線池的使用。

相關文章