安裝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執行的結果就可以了。