Node 封裝 MySQL 操作的思路

安裝Node,MySQL 以及IDEA等工具。
使用express 作爲node MVC框架,下載mysql驅動。

package.json

{
  "name": "NodeDemo",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www"
  },
  "dependencies": {
    "body-parser": "~1.15.1",
    "cookie-parser": "~1.4.3",
    "debug": "~2.2.0",
    "ejs": "~2.4.1",
    "express": "~4.13.4",
    "morgan": "~1.7.0",
    "mysql": "^2.11.1",
    "serve-favicon": "~2.3.0",
    "utility": "^1.8.0"
  }
}

mysqlCon.js 配置數據庫信息以及獲取數據庫鏈接以及關閉數據庫鏈接

/**
 * Created by 耀源 on 2016/10/22.
 */
var mysql = require("mysql");

var DbOptions = {
    host: "localhost",
    user: "root",
    password: "root",
    database:"ycuplant"
}

var connect = function (con) {
    con.connect(function(err){
        if(err){
            console.log('Error connecting to Db');
            return;
        }
        console.log('Connection established');
    });
}

var getCon = function () {
    return mysql.createConnection(DbOptions)
}

var close = function (con) {
    con.end(function (err) {
        if(err)
            throw err
        console.log("Exit Success")
    })
}
exports.connect = connect
exports.close = close
exports.getCon = getCon

mysqlExecute.js 用於執行SQL

/**
 * Created by 耀源 on 2016/10/22.
 */
var mysqlCon = require('./mysqlCon')

var execueteDatabase = function(con,callback){
    mysqlCon.connect(con);
    var query = function (callback) {
        con.query("select * from admin",function (err,rows) {
            if(err)
                throw err
            console.log("Data receive from DB\n")
            callback(rows);
        })
    }
    query(callback);
    mysqlCon.close(con)
}

exports.executeDatabase = execueteDatabase;

index.js express框架Controller 層帶代碼

router.get('/test02',function (req,res,next) {
    var result = ['藥耀源','王鎖伶']
    var con = mysqlCon.getCon();
    mysql1.executeDatabase(con,function (rows) {
        for(var i=0;i<rows.length;i++){
           result.push(rows[i])
           console.log("result的長度是"+result.length)
        }
        res.json(result)
    })
})

總結 : 封裝一個基本的CURD,只是傳遞用於執行的SQL以及參數即可,然後通過回調函數取到SQL執行的結果就可以了。

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