直接使用Node连接MySQL的同学都知道,第一次发出请求没问题,第二次就莫名报错,这里提供一个方法:使用连接池
const mysql = require("mysql");
const app = express();
var pool = mysql.createPool({
host : '',
user : '',
password : '',
database : ''
});
pool.getConnection(function (err,connection) {
//然后所有有关数据库的操作都在里面进行,这里演示一个注册的操作
//注册
app.get("/register",function (req,res,next) {
let query = url.parse(req.url, true).query;
let name = query.name;
let id = query.id;
let password = query.password;
let tel = query.tel;
let addSql = 'INSERT INTO user(uname,schoolNum,tel,password) VALUES(?,?,?,?)';
let addSqlParams = [name, id, tel, password];
let info = new Object();
connection.query(addSql,addSqlParams,function (err, result) {
if(err){
info.code = 105;
info.message = "注册失败";
console.log('[INSERT ERROR] - ',err.message);
}else{
info.code = 200;
info.message = "注册成功";
console.log('INSERT ID:',result);
}
res.send(JSON.stringify(info));
return ;
});
});
});
app.listen(port,hostname);
使用连接池相当于是自动去开关数据库,可以想象成一个游泳池,人都是自动下水,游尽兴了就自己爬上来走了。
其实还有别的办法,但是个人感觉使用下来还是这个方法比较好用。