Проблема в том, что когда я запускаю его, я его console.log: 1. конвертирую xlsx в массив строк 2. напрямую отправляю ответ 3. вставляю функцию обновления, чтобы счетчик и matchcount всегда были 0
Я пытаюсьпреобразовать файл xlsx и вставить его в базу данных, я так прост в экспрессе. я пытаюсь пообещать это, но это очень запутанно (обратный вызов, черт возьми)
var matchcount = 0; //this is match counter
var count = 0; //this is counter
await workbook.xlsx.readFile(req.file.path)
.then(workbook => {
workbook.eachSheet(async (sheet, id) => {
//convert xslsx to rowarray
sheet.eachRow(async (row, rowIndex) => {
if (isOVO) {
///some insert import function///
count++
for (var i = 0; i < dataKonekthing.length; i++) {
if (isSameData) {
///insert match data func///
///update import data func///
matchcount ++
}
}
}
})
})
//send response
})
.then(() => res.send({desc : `${count} data, ${matchcount} data}`)
Ожидаемый запуск func: 1. преобразовать xlsx в массив строк 2. вставить и обновить func, чтобы счетчик работал 3. наконец отправить ответ
если есть данные xslx, вставляемые в db count ++, и данные совпадают с matchcount ++, поэтому res.send({desc : `${count} data, ${matchcount} data match`})
, количество зависит от того, сколько данных xslx вставлено в db, а затем matchcount зависит от того, сколько данных соответствует