📜  如何将js中的var设置为下载 - Html(1)

📅  最后修改于: 2023-12-03 15:24:43.988000             🧑  作者: Mango

如何将js中的var设置为下载

有时候我们需要将js中定义的变量作为文件下载,这时候我们需要将变量转换为文件流,并动态创建下载链接实现文件的下载。

在浏览器中创建文件下载链接

在浏览器中要下载文件,主要是通过创建一个下载链接来实现,这可以通过创建一个新的链接元素并将其添加到文档中来完成。

var data = "这是我的数据";

var blob = new Blob([data], {type: 'text/plain'});
var url = window.URL.createObjectURL(blob);

var link = document.createElement("a");
link.setAttribute("href", url);
link.setAttribute("download", "myData.txt");
document.body.appendChild(link);
link.click();

上述代码中,我们首先将待下载的数据存储在变量data中,然后使用Blob构造函数将其转换为Blob对象,设置其MIME类型为text/plain。接着,我们通过调用window.URL.createObjectURL方法将Blob对象转换为BlobURL,这个URL可以在浏览器中用于后续下载。接下来,我们创建一个新的链接元素,并定义其下载属性为myData.txt并将BlobURL设置为其href属性。最后,我们将这个链接元素添加到文档中,并模拟用户点击链接完成下载。

在Node.js中进行文件下载

在Node.js中,将变量转换为下载文件需要使用Node.js内置模块fs。

const fs = require('fs');

var data = "这是我的数据";
fs.writeFileSync('myData.txt', data, {encoding: 'utf8'});

var file = `${__dirname}/myData.txt`;
res.download(file);

上述代码中,我们首先将待下载的数据存储在变量data中,然后使用fs的writeFileSync方法将其写入到指定文件myData.txt中。接着,我们将这个文件作为响应的内容使用res.download方法下载。