MEAN客户端-服务器连接超时,用于下载PDF

时间:2019-03-13 04:18:56

标签: node.js angular amazon-s3 connection-timeout pdfmake

我正在为我们的项目使用MEAN Stack。要使用pdfmake生成pdf, 场景是这样的:首先,从本地服务器获取图像,以便一切正常。为了实现可扩展性,必须将映像移至AWS并从其他服务器移出数据。 现在的过程就像,首先从aws下载图像,然后生成缓冲区,将其转换为base64,然后将其提供给pdfmake。现在出现客户端-服务器连接问题。 客户端向pdf发出http请求,服务器处理它,但是从aws下载图像花费了太多时间,因此客户端连接中断意味着 服务器处理请求并发送回响应,但是没有人可以收听。

/** client **/
function logicTriplogs() {
  $rootScope.isLoading = true;
  AssignsService.logicTriplogs({
      driverId: vm.driver
    }, {
      _ids: vm.selectedTrips,
      scheduleTime: vm.scheduleTime,
      companyImage: vm.companyImage
    },
    function(response) {

      console.log(response);
      $rootScope.isLoading = false;
      var Name = response.pdfName;
      var data = response.content;
      SaveFile.downloadURI(Name, data);
      console.log('PDF Name:', Name);
    },
    function(err) {
      console.log(err);
      vm.error = err.data.message;
      $rootScope.isLoading = false;

    });
}
/** Server **/
getAssignedTripQuery(query, type)
  .exec(function(err, assigns) {
    if (err) {
      console.log('Manifest');
      return res.status(400).send({
        message: errorHandler.getErrorMessage(err)
      });
    }
    if (assigns.length) {
      logicMan(req.body, user, driver, assigns, function(docDefinition) {
        var pdfName = `${moment_tz.tz(startDay, req.user.timeZone).format('MM-DD-YYYY')}.pdf`;
        config.pdfBuffer(docDefinition, function(err, pdfDoc) {
          console.log('EROROR PDF: ', err);
          if (err) {
            console.log('pdfmake function call error');
            return res.status(400).send({
              message: 'Error while generate pdf'
            });
          }
          console.log('PDF Name:', pdfName);
          return res.json({
            message: 'Generated Susscessfuly',
            pdfName: pdfName,
            content: pdfDoc
          });
        });
      });
    } else {
      return res.status(400).send({
        message: 'Some thing went wrong. Please try later.'
      });
    }
  });

0 个答案:

没有答案