res.download загружает пустой файл Excel после writeStream? - PullRequest
0 голосов
/ 27 мая 2020

Я работаю в проекте express, где мне нужно создать маршрутизатор для записи и загрузки файла. Я могу создать и записать файл с помощью writeStream (отмечен в пути), я также могу загрузить файл из res.download. Загруженный файл всегда пуст. Я не понимаю, почему это происходит. Вот мой код. Пожалуйста, дайте предложения ..

    var total = 0;

    var filename = "public/uploads/reports/monthlyreport"+ req.user.username + ".xls";

    if (fs.existsSync(filename)) {
        fs.unlinkSync(filename);
      }

    var writeStream = fs.createWriteStream(filename);

    var header="Slno"+"\t"+" Billno"+"\t"+"Customer Name"+"\t"+" Phone"+"\t"+" subtotal"+"\t"+" Tax"+"\t"+" Extra Charge"+"\t"+" Total" + "\t"+" Date" +"\n";

    writeStream.write(header);


    for (j=0; j<slCount; j++)
    {
        sno = j+1;
        billno = billData[j].billno;
        cust_name = billData[j].cust_name;
        phone = billData[j].cust_phone;
        subtotal = billData[j].subtotal;
        tax = billData[j].tax;
        extracharge = billData[j].extracharge;
        total = billData[j].total;
        rdate = billData[j].report_date;

        row= sno+"\t"+billno+"\t"+cust_name+"\t"+phone+"\t"+ subtotal+"\t"+ tax +"\t"+ extracharge +"\t"+ total + "\t"+ rdate +"\n";

        total = parseInt(total) + parseInt(billData[j].total);

        writeStream.write(row);
    }
    writeStream.close();

    res.download (filename);
...