Node.js - 完成异步功能后下载文件

时间:2013-12-25 15:54:05

标签: node.js asynchronous

我有一个反向代理和一个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()实例中执行所有操作吗?

0 个答案:

没有答案