如何从Angular2中的节点接收流式gzip响应

时间:2018-03-23 17:32:12

标签: node.js angular

目前,节点流式传输了我的文件log1.tar.gz并直接在服务器端创建了一个新文件。我想将gzip作为附件发送回Angular2客户端,但我不知道为什么客户端无法获取它。在构建Chrome时,我检查了请求标题,显示:显示临时标题。

这是我的服务器端代码:

app.get('/*', function (req, res) {
  let file = fs.createReadStream('./log1.tar.gz')
    .pipe(zlib.createGzip())
    .pipe(fs.createWriteStream('./get_logs11.tar.gz'))

  req.on('response', (res) => {
    res.writeHeader(200, {
      'Content-Type': 'application/x-zip',
      'Content-Encoding': 'gzip',
      'Content-disposition': 'attachment; filename=myFile.zip',
    });
   res.pipe(file)
  })
 });

客户端使用Angular: `

 public downloadLogs(path) {
    this.http.get(`http://localhost:4200/jsonrpc/download? 
      path=${path}`).toPromise()
    .then((data) => {
      console.log('data after download', data)
    })
  ` .catch(error => console.log('error', error))
  }

` 我从来没有从客户端获取数据。谁知道为什么?谢谢!

0 个答案:

没有答案