Как сделать так, чтобы мое асинхронное соединение с базой данных закрылось? - PullRequest
0 голосов
/ 27 февраля 2019

Привет. Я пытаюсь выполнить функцию 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 голосов
/ 27 февраля 2019

Ник Кириакидес сделал хороший вывод о смешивании асинхронного / ожидающего с обратными вызовами, что решило мою проблему.Я вставлю это здесь, чтобы ответить на вопрос:

Я не знаю о ваших проблемах конца соединения, но эта строка выглядит неправильно: ждите connection.execute (q, function (err, row, fields)). Вы смешиваете обратные вызовы async / await и error-first. Используйте один или другой. Возможно, вы захотите сделать что-то вроде: const rows = await connection.execute (q). - Ник Кириакидес 57 минут назад

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...