javascript 使用Express、Axios和Js-File-Download时文件下载错误

juzqafwq  于 2022-12-21  发布在  Java
关注(0)|答案(1)|浏览(151)

我从我的快速服务器上做了一个简单的可下载的回复。

app.post("/download", (req, res) => {
  let file_name = req.body.name;
  res.download(path.join(__dirname, `files/${file_name}.mp3`), (err) => {
    console.log(err);
  });
});

我用axios和js-file-download从前端下载了响应文件,文件是以完整文件大小下载的,但是不能播放。

Axios.post("http://localhost:3001/download", { name: name }).then(
  (response) => {
    fileDownload(response.data, `${title}.mp3`);
  }
);

我怎样才能解决这个问题?

1zmg4dgp

1zmg4dgp1#

在我看来,每一个Axios版本从v1.0.0已经从根本上打破。
使用内置的Fetch API,您所做的请求非常简单,而且不会受到Axios糟糕的测试和错误版本的影响。

fetch("http://localhost:3001/download", {
  method: "POST",
  body: JSON.stringify({ name }),
  headers: { "content-type": "application/json" },
})
  .then((res) => (res.ok ? res.blob() : Promise.reject(res)))
  .then((file) => {
    fileDownload(file, `${title}.mp3`);
  });

相关问题