一、简洁版
//db.js
var mysql = require('mysql');
exports.createConn = function(options){
var client = mysql.createConnection(options);
return client;
};
exports.getUsers = function (client,callback){
var selectstatement = 'select * from books';
client.query(selectstatement,function(errs,rows,fields){
if(errs){
console.log(111222333)
callback(errs);
}
if(rows){
console.log(112233)
//console.log(rows);
callback(rows);
}
})
};
exports.end=function(client){
client.end(function(err){
if(err) return;
});
};
//database-default.js
module.exports = {
mysql: {
host: '127.0.0.1',
user: 'root',
password: '',
database:'write_app',
//port: 3306
}
}
//user.js
var express = require('express');
var router = express.Router();
var options = require('../config/database-default')
var db = require('../config/db.js');
//请求作者页
router.route('/user/index').get(function(req,res,next){
console.log(req.session.user);
if(req.session.user){
res.render('user',{title:'作者管理'});
}else{
req.session.originalUrl = req.originalUrl?req.originalUrl:null;//记录用户的请求路径
console.log(req.session.originalUrl);
res.redirect('/login');
}
}).post(function(req,res){
var mes;
console.log(options.mysql);
var client = db.createConn(options.mysql);
db.getUsers(client,function(res){
res.render('index',{results:res});//渲染index模板,并传递res数据
});
}
//index.ejs
<ul>
<% for(var i=0; i<result.length; i++) { %>
<li><%=result[i].comment %></li>
<% } %>
</ul>
二、使用pool连接池
var mysql = require('mysql');
var pool = mysql.createPool{
host: '127.0.0.1',
user: 'root',
password: '',
database:'write_app',
//port: 3306
};
pool.on('connection',function(connection){
connection.qurey('SET SESSION auto_increment_increment=1')
});
pool.getConnection(function(err,connection){
pool.query('SELECT * form books',function(err,res){
if(err) throw err;
res.render('index',{result:res});//渲染index模板,并传递res数据
connection.release();//会把连接放回连接池,等待其它使用者使用!
})
});
pool.end(function(err){
if(err) return;
})
//index.ejs
<ul>
<% for(var i=0; i<result.length; i++) { %>
<li><%=result[i].comment %></li>
<% } %>
</ul>