尝试从 API 服务返回文件时出现问题

时间:2021-05-11 02:05:23

标签: node.js file axios microservices

我很难尝试在 Node.JS 中创建返回转换后文档的服务。当我在 Postman 中测试服务本身并将文件保存为 PDF 时,它工作得很好。但是,当我从新 API 执行此操作时,它不允许我打开文件,说它已损坏或无法打开。

这是当前的流程:

enter image description here

服务代码:(文件保存可以让我很好地查看文件,编码设置为application/pdf,utf-8编码)

  if (!(data instanceof Buffer)) {
    res.status(500);
    return res.send(data);
  }
  res.send(data);

API 调用:

   const formData = new FormData();
    formData.append('file', file.buffer, { filename: file.originalname });
    const headers = {
      ...formData.getHeaders(),
      'Content-Length': formData.getLengthSync(),
    };
      const tmp: any = await this.httpClient
        .post(`${settings.convertService}`, formData, { headers })
        .toPromise()
        .then((data) => {
          return data;
        })
        .catch((err) => console.log(err, 'err was'));

      // return Buffer.from(tmp.data) Yields the same result
      return tmp.data;

我尝试执行 Buffer.from(tmp.data),结果相同。经过一些调试后,即使我没有添加任何内容,tmp.data 上的缓冲区大小还是略大,然后 data 来自 Service。

0 个答案:

没有答案