在 node.js 中读取文件
在这篇简短的文章中,我们将学习如何在 node.js 中读取文件。
在 node.js 中读取文件
fs
模块提供了许多有用的函数来访问文件系统并与之交互。 fs
模块的一个特殊功能是默认情况下所有方法都是异步的,但也可以通过添加同步来同步工作。
我们将使用 fs.readfile()
来读取 node.js 中的文件。 您需要传递文件路径、编码和回调函数来调用文件数据或错误。
fs.readfile()
方法是用于读取文件的内置方法。 它将整个文件读入缓冲区。 require()
方法用于加载模块,如 const fs = require('fs')
。
语法:
fs.readfile( filename, encoding, callbackfn )
此方法接受三个参数。
callbackfn 参数 | 说明 |
---|---|
err | 如果读取文件时发生任何错误。 |
data | 正在读取的文件的内容。 |
它返回文件中存储的内容、数据或读取文件时遇到错误。 让我们通过一个例子来理解它。
代码:
const fs = require('fs');
fs.readfile('/helloworld.txt', 'utf8', (err, data) => {
if (err) {
console.error(err);
return;
}
console.log(data);
});
输出结果如下:
hello jiyik.com readers!
另一种选择是使用同步版本 fs.readfilesync()
。
代码:
const fs = require('fs');
try {
const filecontent = fs.readfilesync('/helloworld.txt', 'utf8');
console.log(filecontent);
} catch (err) {
console.error(err);
}
输出结果如下:
hello jiyik.com readers!
我们还可以使用 fs/promises 模块提供的 fspromises.readfile()
方法。
代码:
const fspromises = require('fs/promises');
async function filereadfn() {
try {
const filecontent = await fspromises.readfile('/helloworld.txt', { encoding: 'utf8' });
console.log(filecontent);
} catch (err) {
console.log(err);
}
}
filereadfn();
输出结果如下:
hello jiyik.com readers!
fs.readfile()
、fspromises.readfile()
和 fs.readfilesync()
这三个方法都在返回数据之前将文件的全部内容读入内存。 这意味着大文件将极大地影响内存使用和程序执行速度。
我们没有等待文件完成读取,而是在准备好要发送的数据后立即开始流式传输到 http 客户端。 与使用其他数据处理方法相比,streams 本质上提供了两个主要优势。
- 内存效率——您不必在处理之前将大量数据加载到内存中。
- 时间效率 - 开始处理数据所需的时间要少得多,因为您可以立即开始处理,而不是等到整个有效负载可用。
在文件流上,调用 pipe()
方法,它获取源并将其定向到目标。 目标流是 pipe()
方法的返回值,这是一件非常方便的事情,它允许我们将对 pipe()
的多个调用链接在一起。
代码:
const fs = require('fs');
const http = require('http');
const nodeserver = http.createserver((req, res) => {
const filestream = fs.createreadstream(`${__dirname}/helloworld.txt`);
filestream.pipe(res);
});
nodeserver.listen(3000);
输出结果如下:
hello jiyik.com readers!
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
node.js 中的 http 发送 post 请求
发布时间:2023/03/27 浏览次数:456 分类:node.js
-
在本文中,我们将学习如何使用 node.js 使用第三方包发出发送 post 请求。
发布时间:2023/03/27 浏览次数:243 分类:node.js
-
本教程演示了如何在 node js 中使用 module.exports。
node.js 与 react js 的比较
发布时间:2023/03/27 浏览次数:173 分类:node.js
-
本文比较和对比了两种编程语言,node.js 和 react。react 和 node.js 都是开源 javascript 库的示例。 这些库用于构建用户界面和服务器端应用程序。