多个PDF集标题

时间:2018-11-15 15:00:53

标签: javascript node.js

我有一个循环,但是我想生成多个文件。我收到Cannot set headers after they are sent to the client

如果我有一把钥匙,那很好。如果我有多个,它将​​生成第二个,而不生成第一个,并给出此错误。

  _.forEach(keys, async function(key) {
    try {
      const pdf = await myPDFd(key);

      res.setHeader('Content-disposition', 'attachment; filename=' + key + '.pdf');
      res.setHeader('content-type', 'application/pdf');
      res.send(pdf);
      res.end();
    } catch (error) {
    }
  });

1 个答案:

答案 0 :(得分:1)

您不可能的方式。

每个HTTP请求仅响应1种类型的数据(在您的情况下为一个PDF文件)。无法通过1个HTTP请求发送2个文件。

您必须在客户端上创建一些逻辑(例如,两个下载链接)。客户端(用户或应用程序)必须执行两个单独的操作(运行两个单独的HTTP请求)才能下载2个文件。

或者,您可以将这两个文件压缩为ZIP(或另一种程序包类型),然后将此一个ZIP文件发送给用户。但是在这种情况下,用户(或应用程序)将不得不解压缩它作为附加步骤。您可以使用node-zip库。