Nodejs Mysql连接池使用mysql模块

时间:2014-12-21 11:58:54

标签: mysql database node.js node-mysql

我们正在使用mysql模块用于节点,我只是想知道这种方法是好还是对我们的应用程序有任何不良影响,请考虑这种情况

dbPool.getConnection(function(err, db) {
    if(err) return err;
    db.query()

这里我调用dbPool对象并从池请求连接然后使用它。但是我找到了另一个实现(我要问的那个),它直接使用dbPool对象,如:

dbPool.query('select * from test where id = 1' function(err, rows) {})

所以我想知道第二个实现到底做了什么,它会自动返回一个免费连接并使用它吗?可以解释在第二种情况下发生了什么,如果它对我的申请有任何影响+或 - ?谢谢。

1 个答案:

答案 0 :(得分:0)

所以这就是所谓的回调链接。在NodeJS中,你有很多异步调用。但有时你想在与MySQL完成连接时做些什么。这就是getConnection功能具有callBack功能的原因。

dbPool.getConnection(function(err, db) {
    if(err) return err;
    db.query()

等于:

dbPool.query('select * from test where id = 1' function(err, rows) {})

dbPool.query()会等待连接打开,您不必将所有查询都放在getConnection中以使其正常工作。这就是为什么它还有一个callBack功能。

告诉我,如果我错了。我希望这能解决你的问题。