使用 express 和 fetch 下载文件不起作用

Download File using express and fetch doesn't work

我尝试使用 nodejs 和 Javascript 下载文件。 当我在浏览器中调用 URL 时,文件被下载。 当我使用 fetch 在我的 javascript 文件中调用此端点时,下载不起作用

NodeJS 端点

app.get("/download", function (req, res, next) {
    res.download(
        filepath
    );
});

Javascript 调用

const downloadFile = async (path) => {
await fetch("http://localhost:8080/download", {
    method: "Get",
})
    .then((response) => {
        console.log(response);
    })
    .catch((error) => {
        console.log(error);
    });

};

你有什么建议吗?

非常感谢!

当您使用 Ajax 发出请求时,响应将传回 JavaScript 代码进行处理。

如果您想对服务器发送给您的文件执行某些操作,则需要编写 JavaScript 来对其执行某些操作。

您的 JavaScript 记录响应对象然后停止。

如果您在地址栏中键入 URL / 单击 link / 等,浏览器只会自动在视口中呈现它/将其保存到下载。做 Ajax 明确地避免自动处理。

所以这里的解决办法是:不要使用Ajax。使用link,或者给location赋值,等等