首页 > 解决方案 > NodeJS Mysql结束功能停止工作?

问题描述

一直在使用 nodejs mysql 包构建一个带有 mysql 数据库的网站。

停止工作了几个星期。

在没有更改代码的情况下,返回并意识到 mysql 包中的 end 函数似乎不再起作用。

我使用这样的异步函数:

app.get('/', (req, res) => {
   async function homeResponse(){
       try{
          var db = createConnection();
          await conquerie.connect(db);
            // get stuff from db
          await conquerie.end(db);
       }catch(err){
          console.log(err);
          res.render('error');
       }
   }

   homeResponse();
});

上面提到的征服 js 使用:


function connect(db){

    let connectpromise = new Promise(function(resolve, reject){
        db.connect((err) => {
            if(err){
                console.log('ERROR COULD NOT CONNECT NERD');
                reject(err);
            }
            console.log('Connected to the DB!!!');
            resolve();
        });
    });
    return connectpromise;
}

function end(db){

    let endpromise = new Promise(function(resolve, reject){
        db.end((err) =>{
            if(err){
                console.log('cant end connecty');
                reject(err);
            }
            console.log('DB Connection ended!!!');
            resolve();
        });
    });
    return endpromise;

}

DB Connect 工作正常,从 DB 中提取信息没有问题,end 不起作用。

它在 db.end 上捕获错误并返回“无法结束连接”。

连接没有结束。如果我删除该捕获,我会收到 PROTOCOL_SEQUENCE_TIMEOUT 错误。

我试过异步和同步,没有变化。

有最新版本的 mysql 包,网上没有其他人提到这个,所以我猜这一定是我做的。

非常感谢任何建议。谢谢!~

标签: mysqlnode.jsexpress

解决方案


推荐阅读