首页 > 解决方案 > 在提交这个 post 请求时,主代码没有被执行,它总是到达 catch 块,为什么?

问题描述

我没有正确处理异步操作。我正在尝试将 app.post('/receiver') 路由上收到的值写入 excel 文件。我正在使用 exceljs npm 包。当我将其作为单独的一个尝试时,它可以正常工作,但是当从 app.post 调用此 exceljs 函数时,它不起作用。

当我的客户向路由 /receive 发送发布请求时,我想写/读一个 excel 文件。但是这里的代码总是到达 catch 块,我什至尝试删除它

app.post('/receiver',function(req, res){
   var data = [req.body.deviceid, req.body.purposeofvisit, req.body.componentsused,req.body.rectification,req.body.hoursspent,req.body.completed, req.body.reason]
   console.log(data);
   workBook.xlsx.readFile('/routes/book.xlsx').then(function() {
      var worksheet = workBook.getWorksheet(1);
      var row = worksheet.getRow(7);
      row.getCell(8).value = "AF22e-3852"; 
      row.commit();
      workBook.xlsx.writeFile('/routes/book.xlsx');
      res.sendFile(path.join(__dirname + '/in.html'));
   }).catch(function(){
      console.log('Catch reached')
   });
});

我当前的输出: 截图 需要输出:

客户端请求:/receiver(发布数据)接收服务器:将这些值写入 excel 文件(我正在使用 exceljs 包)

标签: javascriptnode.jsexcelasynchronous

解决方案


推荐阅读