使用node.js动态创建文件并使其可供下载

时间:2013-08-27 14:01:57

标签: node.js filestream

我正在Node.js中构建一个文本编辑器,用户在textarea中创建一个文件。当他完成编辑文件后,他可以按下一个“导出”按钮,触发一个Jquery函数,该函数读取textarea并在node.js服务器上发布文本。服务器应该读取信息并返回一个文件。我想避免在服务器上创建文件并为其提供服务,我宁愿用流创建一个文件。我尝试过使用以下内容,但这不起作用:

exports.exportfile = function(req,res){

  var Stream = require('stream')
  var stream = new Stream();

  res.setHeader('Content-disposition', 'attachment; filename=try.txt');
  res.setHeader('Content-type', 'text/plain');

  stream.pipe = function(dest) {
    dest.write('Hello Dolly')
  }

    stream.pipe(res)
}

有没有人对如何实现这一目标有任何见解?

1 个答案:

答案 0 :(得分:5)

我在我的服务器上测试了这个并且它有效。这是来自GET电话,但我不明白为什么它不能用于POST。

res.setHeader('Content-disposition', 'attachment; filename=theDocument.txt');
res.setHeader('Content-type', 'text/plain');
res.charset = 'UTF-8';
res.write("Hello, world");
res.end();