NodeJS Express - 用于下载文件的端点



最近我正在做一个项目,我偶然发现了一个问题,我无法找到一个真正令人满意的解决方案。我想要一个端点,让用户下载一个文件。为此,我使用了Express的功能res.download(filename),效果很好。但是,在我的方案中,文件放置在服务器上,因此我必须先下载它。我目前正在做的是使用请求模块请求文件,使用 fs 将其保存到文件系统,然后让用户下载它。之后我删除了它。

我认为这不是一个好的解决方案,我想知道是否有更好的方法。

我正在尝试这样的事情:

app.get('/download', (req, res) => {
const url = 'https://i.imgur.com/4BZWw57.jpg',
    r = request(url);
r.on('response', function(response) {
    response.pipe(res.download('response.headers.date'));
    console.log(response);
});

}(;

是否可以不将文件保存在我的文件系统上,而是立即将其流式传输给用户?

我做了类似的事情:

app.get('/download', (req, res) => {
const url = 'https://i.imgur.com/4BZWw57.jpg',
    r = request(url);
    req.pipe(r);
    r.pipe(res);
});

最新更新