如何将json块作为文件发送给用户

我有一个大的JSON块; (下载)文件发送到浏览器的最佳方式是什么?

这是一个例子,如果我的来源是从一个文件,但在我的情况下,我的来源不是一个文件,它是一个variables,我需要发送这个JSON数据到浏览器:

var http = require('http'); var fs = require('fs'); var file = fs.createWriteStream("file.jpg"); var request = http.get("http://i3.ytimg.com/vi/J---aiyznGQ/mqdefault.jpg", function(response) { response.pipe(file); }); 

我的企图代码:

 res.setHeader('Content-disposition', 'attachment; filename=myData.json'); res.setHeader('Content-type', 'application/json'); //data is my variable with my JSON block res.pipe(data);//This is not right! 

如果我的问题含糊不清,请告诉我是否需要进一步澄清

我不知道你使用的是什么types的框架(Express?),但是这只适用于普通的http模块。

 var http = require('http'); http.createServer(function (req, res) { res.setHeader('Content-disposition', 'attachment; filename=myfilename'); var data = { foo: 'bar' }; res.write(JSON.stringify(data)) res.end() }).listen(1337, '127.0.0.1'); 

这听起来像你可能想要的,而不是,JSONstream。 EG:你想发送一个非常大的JSON对象到一个客户端(不是一次,浪费大量的内存)。

有一个相当不错的库为您处理这个,在这里: https : //github.com/dominictarr/JSONStream