如何在Express发送缓冲区数据?

我正在尝试创建并将Excel文件发送给客户端。客户端应通过AJAX请求下载文件,因为我需要过滤参数。

我正在使用Excel4Node软件包来创建Excel文件。

我在下面编写代码,现在正在工作,但是我很可疑,如果我的数据比缓冲区大,该怎么办。这是使用缓冲区的正确方法吗? (请使用WriteTobuffer方法检查线路)

    const xl = require('excel4node');

    const excelCreator = function (data) {...}

    app.post('/api/excel', jsonParser, (req, res) => {

      let reqObj = {
        method: 'post',
        url: apiUrl + '/MemberService';,
        headers: {
          'Content-Type': 'application/json'
        },
        data: req.body
      };

      axios(reqObj)
        .then(response => {
          res.body = responseHandler(response); // a helper function to set res object

          let data = res.body.Data;

          res.setHeader('Content-Disposition', 'attachment; filename=' + 'excel.xlsx');
          res.type('application/octet-stream');
          res.body.Data = null;

          excelCreator(data).writeToBuffer().then(function (buffer) {
            res.body.Data = buffer;
            res.send(res.body);
          });

        })
        .catch(...);
    });

0 个回答

  • 35509 浏览
  • Sam 提出于 2018-06-27 12:49:49

相似问题