const mysql = require("mysql");
//下载的第三方npm包
const config = require("../config/config")
//引入需要的默认配置
// mysql连接池
//首先进行连接
const pool = mysql.createPool({
host: config.HOST,//数据库ip
user: config.USERNAME,//数据库账号
password: config.PASSWORD,//数据库密码
database: config.DATABASE,//数据库库名
})
//注意...这里的config.是我从其他文件引入的默认配置
//封装查询函数
let query=function(sql,callback){
//简历连接
pool.getConnection(function(err,conn){
if(err){
callback(err,null,null);
}else{
conn.query(sql,function(err,results,fields){
//事件驱动回调
callback(err,results,fields);
});
//释放连接,需要注意的是连接释放需要在此处释放,而不是在查询回调里面释放
conn.release();
}
});
};
//最后暴露
module.exports = query;
因为mysql存在一个断开连接时间,默认设置是八小时,如果服务器一直开着,连接数据库但是不查询或者不释放,mysql会自动关闭连接,当我们前端进行访问的时候会发现报500,服务器已经崩了,这时就需要用的连接池,当每次查询的时候都去建立一次连接,并当数据查询完毕以后,关闭连接,也是节省性能的一种方式