如何关闭我的异步数据库连接?

时间:2019-02-27 04:55:17

标签: node.js async-await es6-promise mysql2

嗨,我正在尝试执行一个node.js函数,该函数打开数据库连接,执行查询,然后关闭。

一切正常,直到需要关闭连接为止。我以为我的语法有问题,但我无法弄清楚。

代码如下:

async function databaseConnection() {
    const mysql = require('mysql2/promise');

    var connection = await mysql.createConnection({
            host:'*******' 
        ,   user:'*******' 
        ,   password:'*******' 
        ,   database:'*******' 
    });

    var q = 'SELECT ******* AS sha1 FROM ******* limit 10';

    await connection.execute(q, function(err, rows, fields) {
        if(err){
            console.log("An error ocurred performing the query." + err);
            return;
        }else{
            console.log("Query succesfully executed: ");
            rows.forEach( (row) => {
                console.log('sha1 from db row: ' + row.sha1);
            });
        }
    });
    await connection.end(); 
}

databaseConnection();

1 个答案:

答案 0 :(得分:1)

Nik Kyriakides很好地说明了如何将异步/等待与回调混合使用,从而解决了我的问题。我将其粘贴在此处以回答问题:

  

我不知道您的连接端问题,但是这行看起来不对:await connection.execute(q,function(err,rows,fields)。您正在混合async / await和错误优先回调。或其他方式。您可能想要执行以下操作:const rows = await connection.execute(q)。– 57分钟前nik Kyriakides