Как использовать connection.end () с Array.prototype.map () - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь сделать серию задач для базы данных (проконсультироваться и вставить) из списка. Задачи выполняются в течение Array.prototype.map(), а затем соединение прерывается, но появляется ошибка: Error: Cannot enqueue Query after invoking quit..

Я занимался расследованием, и причина ошибки в том, что я не закрываю соединение, а закрываю его в конце.

cars.map(async (item, i) => {
    result = await requestProperties(i);
    if (!checkJSON(result)) {
        console.log("*** INCORRECT JSON FORMAT *** --> " + item.id)
    } else {
        JSONResponse = JSON.parse(result)
        getStatusCar(i, JSONResponse);
        if (JSONResponse["status"] === "BROKEN") {
            try {
                urlCarBroken = JSONResponse["broken"][0]["url"]
                resultBroken = await requestUrlCarBroken(urlCarBroken)
                if (typeof resultBroken !== 'string') {
                    console.log("*** INCORRECT JSON FORMAT *** --> " + item.id)
                } else {
                    messageError = await readXML(resultBroken)
                    descriptionError = messageError[0]
                    codeError = messageError[1]
                    queryInsertError = 'INSERT INTO cars_broken VALUES ("' + item.id + '", "' + codeError + '", "' + descriptionError  + '");'
                    database.query(queryInsertError)
                        .then(rows => {
                            if (rows.affectedRows !== 0) {
                                console.log("ERROR INSERTED -->  " + item.id)
                            }
                        }).catch(error => console.log(error))
                }
            } catch (error) {
                console.log("*** ERROR NOT FOUND *** --> " + item.id)
            }
        }
    }
}, database.close())
...