如何将文件作为后台进程从Node.js/Express.js发送给用户进行下载



我目前正在使用res.download((发送文件,但当文件较大时,请求需要超过30秒,这会导致请求超时,这对部署来说是个问题。

当前代码:

app.get('/download',(req,res) => {
censor(filePath);//function to process file before download
res.download(filePath,fileName, (err) => {
if(err)
console.log(err);
});
});

我想确保下载在30秒内进行,文件通常是文本文件。

任何帮助都将不胜感激。

您可以使用bull和redis来创建一个简单的队列模式。在这种情况下,您的长时间占用任务将运行";在背景中";并且您不会阻止事件循环。任务完成后,您可以收到关于这一事实的通知并采取措施。以下是一篇不错的文章,您可以从中开始:https://devcenter.heroku.com/articles/background-jobs-queueing

最新更新