最近遇到一个小需求,前端要下载一个json文件,内容是对应数据的json对象。
看网上写的都太复杂了,只是下载一个小文件,只需要用到res.end()就够了。
前端:
在a标签上加上download属性就可以点击下载文件了,download可以赋值,值为下载之后的文件名。也可以留空,用原有的文件名。
<a href="/xxxxx" download>导出</a>
后端:
响应头需要设置这两个属性“Content-type”,“Content-Disposition”
然后用res.end()写入数据,数据一定是字符串形式。
filename是文件名
var jsonstr_data = JSON.stringify(obj);
res.set({
"Content-type":"application/octet-stream",
"Content-Disposition":"attachment;filename="+encodeURI(filename)
});
res.end(jsonstr_data);