从Node.js中的Json对象下载文件

我是NodeJS的新手。 我正试图从json对象下载文件。 我有我从Mongodb集合收到json对象,我想返回json数据列表中的文件。 我试图从我的本地机器下载文件,该代码的作品。 但不能够了解如何从json对象返回文件。 我需要为此使用缓冲区吗? 到目前为止,我有下面的testing代码。

//Write Member File exports.File = function(req, res){ var data = getdata(function(err, members){ //console.log(members); // var bf = buffer.Buffer(members, 'Binary').toString('base64'); // console.log(bf.length); // I get bf.length as 4 var file = 'C:/Docs/members.txt'; var filename = path.basename(file); console.log(filename); var mimetype = 'text/plain'; res.setHeader('Content-disposition', 'attachment; filename=' + filename); res.setHeader('Content-type', mimetype); var fileStream = fs.createReadStream(file); fileStream.pipe(res); }); }; 

你可以试试这个

 function(req, res) { var jsonObj = getJSON(); var data = JSON.stringify(jsonObj); res.setHeader('Content-disposition', 'attachment; filename= myFile.json'); res.setHeader('Content-type', 'application/json'); res.write(data, function (err) { res.end(); } }); 

这与我工作。

 var user = {"name":"azraq","country":"egypt"}; var json = JSON.stringify(user); var filename = 'user.json'; var mimetype = 'application/json'; res.setHeader('Content-Type', mimetype); res.setHeader('Content-disposition','attachment; filename='+filename); res.send( json ); 

我需要为此使用缓冲区吗?

不,一个简单的string,你写。 .write()到响应就足够了。

 exports.returnData = function(req, res){ getdata(function(err, members){ console.log(members); // I guess you have an object here, not a plain response var json = JSON.stringify(members); // so let's encode it var filename = 'result.json'; // or whatever var mimetype = 'application/json'; res.setHeader('Content-disposition', 'attachment; filename=' + filename); res.setHeader('Content-type', mimetype); res.write(json); }); };