安装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执行的结果就可以了。