我有一个反向代理和一个node.js服务器,它将一个普通/文本响应发送回代理,反过来,这会产生一堆与我的问题有关的前端内容。
普通/文本响应来自多个异步函数,并且当每个异步函数通过使用
完成时,用户被告知进度res.write( “实施例”);
问题是,node.js服务器应该在所有异步功能完成后提示浏览器下载。这与文件的下载方式和位置无关。
我尝试将标头设置为Content-Disposition: attachment
,但Node只会抛出类似Error: Can't set headers after they are sent
的内容。
这是一个代码示例:
app.post('/', function(req, res) {
res.statusCode = 200;
/*
Bunch of async functions
*/
res.download("some_file"); // This is included in the callback after all async functions are done
});
app.listen(3000, function() {
console.log('The server is running at http://whatever:3000/');
});
异步函数使用eachSeries
模块中的async
。这是我想要完成的另一个例子:
async.eachSeries(func1,func2,function(err){
// something to prompt the user for download
});
我是否必须创建另一个express实例才能提供下载服务,或者有一些方法可以在一个express()实例中执行所有操作吗?