NodeJS и Express; обратный вызов на запрос соединения завершен - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь вставить несколько записей в базу данных mysql, и мне нужно получить идентификатор каждой записи и отправить его обратно клиенту.Код, который я использую:

app.post('/saveLesson',function(req, res){

    var idArray = [];

    let sections = JSON.parse(req.body.sections);

    for (let i = 0; i < sections.length; i++) {

        let sql = 'INSERT INTO sections (title, content, duration) VALUES ("' + sections[i].title + '","' + sections[i].content + '","' + sections[i].duration + '");';

        connection.query(sql,
            function (error, result) {
                if (error) throw error;
                idArray.push(result.insertId);
                console.log('array in the loop: ' + idArray);
            }
        );
    }

    console.log('array out of the loop: ' + idArray);
    res.send(idArray);

});

Проблема в том, что метод .query кажется асинхронным и следующий код выполняется до фактического заполнения idArray:

    console.log('array out of the loop: ' + idArray);
    res.send(idArray);

Как можно решить эту проблему?

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