我们正在使用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) {})
所以我想知道第二个实现到底做了什么,它会自动返回一个免费连接并使用它吗?可以解释在第二种情况下发生了什么,如果它对我的申请有任何影响+或 - ?谢谢。
答案 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功能。
告诉我,如果我错了。我希望这能解决你的问题。