📅  最后修改于: 2023-12-03 15:38:45.913000             🧑  作者: Mango
在前端开发过程中,有时需要从文本文件中读取数据并将其加载到 JavaScript 变量中。本文针对这个需求,介绍几种实现方式。
XMLHttpRequest 可以用于向服务器请求数据。我们可以利用它来读取本地文件的内容。
var xhr = new XMLHttpRequest();
xhr.open('GET', './file.txt', false);
xhr.send();
if (xhr.status === 200) {
var text = xhr.responseText;
}
完整代码如下:
var xhr = new XMLHttpRequest();
xhr.open('GET', './file.txt', false);
xhr.send();
if (xhr.status === 200) {
var text = xhr.responseText;
}
需要注意的是,上述代码只适用于读取同域下的文本文件,如果要读取其他域下的文件,需要设置 CORS。
fetch 是浏览器原生提供的用于请求资源的 API。与 XMLHttpRequest 相比,fetch 更加简洁易用,也能够读取文本文件的内容。
fetch('./file.txt')
fetch('./file.txt')
.then(response => response.text())
.then(text => console.log(text));
完整代码如下:
fetch('./file.txt')
.then(response => response.text())
.then(text => console.log(text));
需要注意的是,fetch 方法只能读取同域下的文本文件,如果要读取其他域下的文件,也需要设置 CORS。
如果你的代码运行在 Node.js 环境中,还可以使用 fs 模块来读取文本文件。
const fs = require('fs');
const text = fs.readFileSync('./file.txt', 'utf8');
完整代码如下:
const fs = require('fs');
const text = fs.readFileSync('./file.txt', 'utf8');
console.log(text);
注意,在 Node.js 环境中使用 fs 模块需要注意安全性问题,避免恶意代码读取和修改文件。另外,fs 模块也只能读取本地文件,无法读取网络文件。