原因:
因为在本地由nodemon启动后, 连接的mysql数据隔几分钟自动断开连接, 通过 on 方法监听 error 去重新连接后,调接口又报错,所以换了连接池的方式连接mysql
const mysql = require('mysql');
// 创建mysql连接池
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: 'root',
database: 'user',
});
// 可省略,连接成功打印'mysql connection susscces...'
pool.getConnection(function (err, conn) {
if (err) {
console.log('连接失败 err:', err);
} else {
console.log('mysql connection susscces...');
}
});
/**
* @params sql mysql语句
* @params callback 查询结果后的回调函数,函数的参数为 数据或者 报错
*/
const mysql_query = (sql, callback) => {
pool.getConnection(function (err, conn) {
if (err) console.log("POOL ==> " + err);
conn.query(sql, function (err, data) {
if (err) {
callback(err)
} else {
callback(data)
}
conn.release();
});
});
}
module.exports = mysql_query;