出错背景:
当第一次执行数据库操作时,是可以成功的。这时第二次执行数据库操作,就会报错如标题所示。
原因:
这是因为我们在使用.end()方法关掉连接之后,需要重新调用 createConnection重新创建一个连接。
解决方式:
例如下面封装的一个操作数据库的查询跟增加的方法。方法中每次都会首先使用 mysql.createConnection()创建新连接,再去执行数据库操作,而不是直接把它放到最外层。
var mysql = require('mysql');
// 数据库查询
exports.find=function(findSql,callback){var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : '123456', port: '3306', database: 'namesharing',});connection.connect();connection.query(findSql,function (err, result) {if(err){console.log('[SELECT ERROR] - ',err.message);return;}connection.end();callback(result)});
}// 数据库增加
exports.insert=function(addSql,addSqlParams,callback){var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : '123456', port: '3306', database: 'namesharing',});connection.connect();connection.query(addSql,addSqlParams,function (err, result) {if(err){console.log('[INSERT ERROR] - ',err.message);return;}connection.end();// console.log('INSERT ID:',result); callback(result)});
}