商城网站模版,什么是网站模块,合肥网站建设zgkr,wordpress 嵌入百度地图个人简介 #x1f440;个人主页#xff1a; 前端杂货铺 #x1f64b;♂️学习方向#xff1a; 主攻前端方向#xff0c;正逐渐往全干发展 #x1f4c3;个人状态#xff1a; 研发工程师#xff0c;现效力于中国工业软件事业 #x1f680;人生格言#xff1a; 积跬步…个人简介 个人主页 前端杂货铺 ♂️学习方向 主攻前端方向正逐渐往全干发展 个人状态 研发工程师现效力于中国工业软件事业 人生格言 积跬步至千里积小流成江海 推荐学习前端面试宝典 100个小功能 Vue2 Vue3 Vue2/3项目实战 Node.js实战 Three.js 个人推广每篇文章最下方都有加入方式旨在交流学习资源分享快加入进来吧 文章目录 前言writeFile 文件写入appendFile 追加写入writeFile 追加写入createWriteStream 流式写入readFile 文件读取createReadStream 流式读取文件复制同步文件复制流式rename 文件重命名unlink / rm 文件删除文件夹操作mkdir 创建文件夹递归创建文件夹readdir 读取文件夹rmdir 删除文件夹递归删除文件夹 stat 查看资源信息__dirname __filename总结 前言
Node.js 是一个免费、开源、跨平台的 JavaScript 运行时环境, 它让开发人员能够创建服务器 Web 应用、命令行工具和脚本。
我认为作为一名前端开发人员学习 Node.js 是非常有必要的它可以充当服务端补足前端程序员对服务端语言的欠缺。
本篇文章我们学习 Node.js 的 fs 模块即文件系统模块。 writeFile 文件写入
写入文件前要先导入 fs 模块之后通过 writeFile 可以进行异步写入通过 writeFileSync 可以进行同步写入。
writeFile 接口接收三个参数从左到右依次为
要写入的文件名待写入的数据回调函数处理 error 场景
const fs require(fs);// 异步写入
// 文件名待写入的数据回调
fs.writeFile(./demo.txt, 积跬步至千里, (err) {if (err) {console.log(写入文件失败);return;}console.log(写入文件成功);
})// 同步写入
// fs.writeFileSync(./demo2.txt, 积小流成江海);终端执行 node xxx.js 即可看到打印的信息若成功写入则将得到包含 积跬步至千里 的 demo.txt 文本。 appendFile 追加写入
异步追加写入使用 appendFile 接口同步追加写入使用 appendFileSync 接口。
\r\n 表示回车后换行
const fs require(fs);// 异步追加写入
fs.appendFile(./demo.txt, \r\n积小流成江海, (err) {if (err) {console.log(err);return;}console.log(success);
})// 同步追加写入
// fs.appendFileSync(./demo.txt, \r\n积小流成江海);writeFile 追加写入
使用 writeFile 也可以实现追加写入但要添加一个 flag 标识如下代码的 { flag: a }。
const fs require(fs);// writeFile 实现追加写入添加 flag
fs.writeFile(./demo.txt, \r\n使用writeFile追加写入, { flag: a }, err {if (err) {console.log(err);return;}console.log(success);
})createWriteStream 流式写入
使用 createWriteStream 创建写入流对象调用 write 方法进行流式写入。
const fs require(fs);// 流式写入适合大文件写入或频繁写入
// 创建写入流对象
const writeStream fs.createWriteStream(./流式写入.txt);writeStream.write(hello, );
writeStream.write(node!\n);// 适用于需要结束数据传输的场景例如写入文件或发送数据到客户端后关闭连接。
writeStream.end();// 适用于需要立即关闭流而不结束数据传输的场景例如服务器关闭连接前执行一些清理工作。
// writeStream.close();// 流式写入完成时触发
writeStream.on(finish, () {console.log(All writes are now complete.);
})readFile 文件读取
使用 readFile 进行异步文件读取使用 readFileSync 进行同步文件读取。
const fs require(fs);// 异步文件读取
fs.readFile(./demo.txt, (err, data) {if (err) {console.log(err);return;}console.log(data.toString());
})// 同步文件读取
// const data fs.readFileSync(./demo.txt)
// console.log(data.toString());createReadStream 流式读取
使用 createReadStrem 创建读取流对象。添加监听事件监听数据及读取完成。
const fs require(fs);// 流式读取
// 创建读取流对象
const rs fs.createReadStream(./demo.txt);rs.on(data, chunk {console.log(chunk.length);
})rs.on(end, () {console.log(读取完毕);
})文件复制同步
同步文件复制即先使用 readFileSync 读取文件再把读取到的文件作为内容写入新文件。
const fs require(fs);
const process require(process);// 同步复制
const data fs.readFileSync(./demo.txt);
fs.writeFileSync(./demo2.txt, data);
// 读取一个描述 Node.js 进程的内存使用量对象,所有属性值都以字节为单位。
console.log(process.memoryUsage());文件复制流式
流式文件复制即先创建 流式读取对象 和 流式写入对象然后再基于流式读取的内容进行流式写入至新文件。
const fs require(fs);
const process require(process);// 流式复制
const readStream fs.createReadStream(./demo.txt);
const writeStream fs.createWriteStream(./demo3.txt);// 效果等同于 readStream.pipe(writeStream);
// readStream.on(data, chunk {
// writeStream.write(chunk)
// })readStream.on(end, () {console.log(process.memoryUsage());
})readStream.pipe(writeStream);rename 文件重命名
使用 rename 方法进行异步重命名文件使用 renameSync 进行同步重命名文件。
const fs require(fs);fs.rename(./demo.txt, ./renameDemo.txt, err {if (err) {console.log(err);return;}console.log(success);
})// fs.renameSync(./renameDemo.txt, ./demo.txt);unlink / rm 文件删除
使用 unlink 或 rm 进行文件的异步删除使用 unlinkSync 或 rmSync 进行文件的同步删除。
const fs require(fs)// 通过 unlink 删除同步 unlinkSync
fs.unlink(demo.txt, err {if (err) {console.log(err)return}console.log(success)
})// 通过 rm 删除同步 rmSync
// fs.rm(demo2.txt, err {
// if (err) {
// console.log(err)
// return
// }
// console.log(success)
// })文件夹操作
mkdir 创建文件夹
使用 mkdir 进行文件夹的创建。
const fs require(fs)// 创建 createDir 文件夹
fs.mkdir(./createDir, err {if (err) {console.log(err)return}console.log(success)
})递归创建文件夹
使用 mkdir 可以进行递归创建文件夹recursive - 是否以递归的方式创建目录默认为 false。
const fs require(fs)// 递归创建
fs.mkdir(./a/b/c, {recursive: true}, err {if (err) {console.log(err)return}console.log(success)
})readdir 读取文件夹
使用 readdir 进行文件的读取操作。
const fs require(fs)// 读取文件夹
fs.readdir(../../node-learn, (err, data) {if (err) {console.log(err, err)return}console.log(data, data)
})rmdir 删除文件夹
使用 rmdir 进行对文件夹的删除。
const fs require(fs)// 删除文件夹
fs.rmdir(./createDir, err {if (err) {console.log(err)return}console.log(success)
})递归删除文件夹
使用 rm 进行递归删除文件夹recursive: true 以递归的方式删除目录默认为 false。
const fs require(fs)// 递归删除
fs.rm(./a, {recursive: true}, err {if (err) {console.log(err)return}console.log(success)
})stat 查看资源信息
提前准备好 demo.txt 文件内容如下 使用 stat 查看资源信息。
const fs require(fs)fs.stat(./demo.txt, (err, data) {if (err) {console.log(err)return}console.log(data)// 判断是否是文件console.log(判断是否是文件, data.isFile())// 判断是否是文件夹console.log(判断是否是文件夹, data.isDirectory())
})__dirname __filename
__dirname 表示当前文件所在目录的绝对路径。
__filename 表示当前文件所在目录的完整路径包括文件名。
const fs require(fs)// 写入文件
fs.writeFileSync(__dirname /demo.txt, 绝对路径)// 所在文件的所在目录的绝对路径
console.log(__dirname, __dirname)
// 当前文件的完整路径包含文件名
console.log(__filename, __filename)总结
本篇文章我们学习了如何使用 Node.js 进行文件操作。包括文件的写入、追加写入、流式写入、文件复制、文件重命名、文件删除、文件夹操作、查看资源信息和获取绝对路径等。
好啦本篇文章到这里就要和大家说再见啦祝你这篇文章阅读愉快你下篇文章的阅读愉快留着我下篇文章再祝 参考资料 Node.js教程菜鸟教程Node.js零基础视频教程尚硅谷 · 李强