亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

node.js - version3的generic-pool問題

瀏覽:115日期:2022-06-15 18:33:13

問題描述

第三版的generic-pool問題,按照里面的example執行的代碼,但是很郁悶的是代碼不能運行,單步的話,也只是到resourcePromise.then(function(client)就不執行了,這是為什么那?使用的模塊地址:https://github.com/coopernurs...全部代碼如下:

var genericPool = require(’generic-pool’);var DbDriver = require(’mysql’);/** * Step 1 - Create pool using a factory object */const factory = { create: function(){return new Promise(function(resolve, reject){ var client = DbDriver.createPool({host:’localhost’,user : ’root’,password : ’root’,database : ’world’}); client.on(’connected’, function(){resolve(client) })}) }, destroy: function(client){return new Promise(function(resolve){ client.on(’end’, function(){resolve() }) client.disconnect()}) }}var opts = { max: 10, // maximum size of the pool min: 2 // minimum size of the pool}var myPool = genericPool.createPool(factory, opts);/** * Step 2 - Use pool in your code to acquire/release resources */// acquire connection - Promise is resolved// once a resource becomes availablevar resourcePromise = myPool.acquire();resourcePromise.then(function(client) { console.log(’in ’); client.query('select * from city', [], function(err,result) {console.log(err);console.log(result);// return object back to poolmyPool.release(client); });}) .catch(function(err){// handle error - this is generally a timeout or maxWaitingClients// error });/** * Step 3 - Drain pool during shutdown (optional) */// Only call this once in your application -- at the point you want// to shutdown and stop using this pool.myPool.drain(function() { myPool.clear();});

問題解答

回答1:

請參照 mysql 的官方文檔:https://github.com/mysqljs/mysql

var mysql = require(’mysql’);var connection = mysql.createConnection({ host : ’localhost’, user : ’root’, password : ’root’, database : ’world’}); connection.connect(function(err) {});

PS: Promise 沒有執行可以斷定是 resolve 或 reject 沒有執行到,這樣可以定位到是沒有 connected 事件。而且 mysql 庫本身帶連接池用法的,所以不需要用 generic-pool。附個文章吧:描述問題癥狀而非你的猜測

回答2:

resourcePromise.then 進不去說明 resolve 或 reject 沒有執行到 ,這樣可以定位到 factory 的 create 中的 resolve(client)沒執行,那么再定位到 是不是client.on(’connected’ 沒執行呢 ! 接著查一下 mysql.js 的文檔 是client.connect(function(err){} 來進行數據庫連接的。 所以解決方法是:

var client = require(’mysql’).createConnection({host:’localhost’,user : ’root’,password : ’root’,database : ’world’}); client.connect(function(err){ if(err){console.log(’Database connection error’); }else{esolve(client);console.log(’Database connection successful’); });

相關文章:
主站蜘蛛池模板: 午夜欧美在线 | 久久国产成人午夜aⅴ影院 久久国产成人亚洲精品影院老金 | 日本一本色道 | 亚洲日产综合欧美一区二区 | 亚洲va中文字幕 | 国产亚洲精品一区二区久久 | 一级毛片不收费 | 国产成人午夜精品影院游乐网 | 成人亚洲网 | 日本不卡免费高清一级视频 | 性色综合 | 中文字幕一级毛片视频 | 一级一片在线播放在线观看 | 欧美成人精品三级网站 | 亚洲第3页| 男人天堂网在线观看 | 亚洲天堂中文网 | 三级毛片免费观看 | 久久精品久久精品久久精品 | 国产精品国产国产aⅴ | 欧美一区二区三区免费播放 | 美女视频黄色免费 | 一级毛片不卡 | 亚洲一级毛片免费观看 | 五月天激激婷婷大综合蜜芽 | 亚洲精品视频免费在线观看 | 长腿嫩模打开双腿呻吟 | 欧美日韩一区二区三在线 | 偷拍精品视频一区二区三区 | 国内精品久久久久久久影视麻豆 | 成人欧美一区在线视频在线观看 | 欧美一区综合 | 国产成人亚洲综合91精品555 | 9191精品国产免费不久久 | 成人午夜性a一级毛片美女 成人午夜亚洲影视在线观看 | 欧美在线观看一区 | 久久久久久久国产精品视频 | 国产精品福利午夜一级毛片 | 亚洲三级a | av毛片免费看 | 91人成亚洲高清在线观看 |