тайм-аут запроса при обработке данных из файла Excel в nodejs - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть лист Excel с данными, и я обрабатываю его после прочтения данных. Проблема в том, что, хотя обработка не выполняется, запрос отправляется в почтальоне по тайм-ауту.

 xlsxj({
          input: filepath,//path of the file
          output: null, // I am not taking any output of the file
          sheet: "Party Master"
        }, async function (err, result) {
          if (err) {
            res.send(err);
          } else {
            try {
                for(let row of result) { // more than 1000 iterations
                await fun1(row);
                await fun2(row);
                await fun3(row);
                }
                return res.send('all done');
             }
              catch(err){
                   console.log(err);
                  }

         }
    })

где я ошибаюсь?

Ответы [ 2 ]

0 голосов
/ 07 ноября 2019
I have found a solution. Return the response in finally block.

xlsxj({
          input: filepath,//path of the file
          output: null, // I am not taking any output of the file
          sheet: "Party Master"
        }, async function (err, result) {
          if (err) {
            res.send(err);
          } else {
            try {
                for(let row of result) { // more than 1000 iterations
                await fun1(row);
                await fun2(row);
                await fun3(row);
                }
                return res.send('all done');
             }
              catch(err){
                   console.log(err);
                  }
finally{
return res.send('all done')
}

         }
    })
0 голосов
/ 07 ноября 2019

Время ожидания API, потому что обработка файла занимает много времени. Если вы используете express framework, время ожидания API по умолчанию равно 2 min , что вы можете сделать, это увеличить время ожидания API.

Если вы используете экспресс, вы можете просто сделать

req.setTimeout(500000); // time in ms
...