使用了node-mysql的代码无法自动停止
// db.js
var mysql = require('mysql');
module.exports = function () {
var pool = mysql.createPool({
host: "localhost",
user: 'xxx',
password: 'xxx',
database: 'xxx',
});
return pool;
}();
// valid.js
var pool = require('./db.js');
module.exports = function () {
return {
isProjectOwner: function (uid, pid, callback) {
pool.getConnection(function (err, connection) {
if (err) {
callback(err, null);
}
var sql = '.....';
connection.query(sql, [pid, uid], function (err, res, fields) {
if (err) {
callback(null, false); // Maybe attack
}
console.log(res);
if (res.length) {
callback(null, true);
} else {
callback(null, false);
}
connection.release();
});
});
},
};
}();
// tdb.js
var valid = require('./valid.js');
valid.isProjectOwner(2, 1, function (err, result) {
if (err) {
throw err;
}
console.log(result);
});
在Terminal中运行tdb.js
> $ node tdb.js
[]
false
但是,如果不使用ctrl+c,无法终止进程
我试过用普通的connect(),在回调中没使用connection.end()时也会出现这种问题,使用了的话就能正常结束进程。
新手求教,谢谢~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
连接池没有关闭,自然不会结束
试试pool.end(cb)