运行node mysql 模块后程序未结束问题,请问怎么修改?
发布于 10 年前 作者 maxer028 4302 次浏览 最后一次编辑是 8 年前 来自 问答

// mysqldb-util.js var mysql = require(‘mysql’);

var pool = mysql.createPool({ host: ‘127.0.0.1’, user: ‘root’, password: ‘root’, port: ‘3306’, database: ‘nodesample’ });

exports.dataCenter = function(sql, fn) { // (callback && typeof(callback) === “function”) pool.getConnection(function (err, conn) { if (err) { console.log("POOL ==> " + err); return fn(err); } else { conn.query(sql, function (err, res) { conn.release(); return fn(res); }); } }); };

//mysqlDbTest.js var mysql = require(‘mysql’) , dbUtil = require(’./mysql-dbutil’);

var selectSQL = “select * from ?? where ID = ?”; var selectArr = [‘mytable’, ‘12204’]; selectSQL = mysql.format(selectSQL, selectArr);

dbUtil.dataCenter(selectSQL, function(data) { console.log(data); });

请问 运行node mysqlDbTest.js 时,光标输出数据后怎么还停着未结束?是因为连接未释放吗?怎么修改呢?多谢

3 回复

要自己结束掉,最初我没去处理这个问题,因为我直接用easymysql这个模块了,还自带链接池,不用close,自动归还。

pool.query() 好像也可以的,连接的获取和释放帮你做了,只是如果要用到其他例如事务处理的好像不行,还是得自己 getConnection

@maxer028 表示遇到同样得问题 请问下你解决了么

回到顶部