`
阅读更多
// db-util.js
var mysql = require('mysql');
var pool = mysql.createPool({
  connectionLimit : 10,
  host: 'localhost',
  user: 'root',
  password: '',
  database: 'test',
  port: 3306
});

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);
      });
    }
  });
};

 

// 利用回调函数达到同步操作数据并获取信息的效果
var mysql = require('mysql')
  , dbUtil = require('./db-util');

var selectSQL = "select * from ?? where idcard = ?";
var selectArr = ['employee', 'xxxxx'];
selectSQL = mysql.format(selectSQL, selectArr);

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

 

 

[ { id: 1,
    name: 'Happy',
    idcard: 'xxxxx',
    department: 'frontend',
    birthday: Sat Oct 07 1989 00:00:00 GMT+0800 (中国标准时间), 
    salary: 1234.56,
    create_date: Wed Oct 29 2014 14:03:08 GMT+0800 (中国标准时间) 
  }...]

 

分享到:
评论
2 楼 qiaolevip 2015-01-06  
maxer025 写道
有个小问题,执行完后,光标还停在数据末尾,程序未完成,是数据库哪个链接未释放么?

这个不管它,是nodejs执行的关系,属于正常情况。 这里会 conn.release();   释放连接的。
nodejs执行数据库查询不像简单js那样执行完毕就停止,数据库连接池还在。
1 楼 maxer025 2015-01-05  
有个小问题,执行完后,光标还停在数据末尾,程序未完成,是数据库哪个链接未释放么?

相关推荐

Global site tag (gtag.js) - Google Analytics