【发布时间】:2016-09-23 01:25:17
【问题描述】:
这真的很烦人,我只是无法关闭我的 mysql 连接。这是我的代码:
var mysql = require('mysql');
function getConnection(){
return mysql.createConnection({
host : credentials.db.host, //'eu-cdbr-azure-north-e.cloudapp.net',
user : credentials.db.user, //'b1a8cac71bbac61',
password : credentials.db.password, //'be2de8334',
database : credentials.db.database //'bcd290081'
});
}
function runMySQLQuery(qry, callback){
var conn = getConnection();
conn.connect();
conn.query(qry, function(err, rows, fields) {
if (err){
// db err
callback(Error.sql_query, null);
} else{
// check result
if(typeof rows == 'object'){
callback(Error.no_errors, rows);
}else{
// wrong return from db
callback(Error.sql_query, null);
}
}
});
//conn.destroy();
conn.end(function(err) {
// The connection is terminated now
console.log('connection ended');
});
}
var qry = "SELECT id, hash, last_login FROM acsm_b962fe317b5d30e.orium_chatbot_customers " +
"WHERE username = '" + username + "' AND password = '" + password + "';"
//console.log('qry', qry);
runMySQLQuery(qry, callback);
所以,我正在接收我想要的数据,但连接保持打开状态,我尝试了 destroy 和 end 方法(有和没有回调函数),我的程序只是没有结束。大概一分钟左右,终于结束了,然后调用了end的回调函数。
真的很烦人,我还看到另一个stackoverflow doubt 对此也不太成功。
关闭连接对我来说非常重要,因为我想在 AWS Lambda 上部署我的代码,我无法承受这么长时间。
【问题讨论】:
-
您希望它关闭的时间是什么时候?
-
在我的查询执行后,你会看到我调用了回调,然后调用了 conn.end
-
尝试 connection.on('error', function(error) { console.log(error); });
-
我在 conn.end 之前添加了这段代码,没有打印任何新内容。
标签: mysql node.js node-mysql