快速了解nodejs项目中如何增删改查文件
时间:2021-09-08
来源:互联网
标签:
今天PHP爱好者为您带来这篇文章主要是写给初学node.js的同学,本篇文章主要姐介绍nodejs的文件模块,通过nodejs的文件模块,我们可以创建、读取、修改、删除我们操作系统上的文件或文件夹,同理在Linux服务器上也是可以运行的。希望对大家有所帮助。
这篇文章主要是写给初学node.js的同学,本篇文章主要姐介绍nodejs的文件模块,通过nodejs的文件模块,我们可以创建、读取、修改、删除我们操作系统上的文件或文件夹,同理在Linux服务器上也是可以运行的。因为nodejs是跨平台运行的javascript运行环境。
Nodejs File System官方文档:https://nodejs.org/dist/latest-v14.x/docs/api/fs.html
源码:https://github.com/cmdfas/nodejs-file-system
项目结构:
├── files
│ ├── file1
│ └── file2
├── dir.js
├── index-callback.js
├── index-promise.js
└── stream.js
常规文件操作
回调函数式操作
创建index-callback.js
,代码如下
const fs = require('fs')
const path = require('path')
// 读取文件
fs.readFile(path.join(__dirname, 'files', 'file1'), (err, buf) => {
if (err) throw err
console.log(buf.toString())
})
// 写入文件
fs.writeFile(path.join(__dirname, 'files', 'file3'), '欢迎光临', (err) => {
if (err) throw err
console.log('写入完成')
// 在文件末尾追加
fs.appendFile(path.join(__dirname, 'files', 'file3'), '\n\n男宾三位', (err) => {
if (err) throw err
console.log('追加完成')
// 修改文件名称
fs.rename(path.join(__dirname, 'files', 'file3'), path.join(__dirname, 'files', 'file3-rename'), (err) => {
if (err) throw err
console.log('改名完成')
})
})
})
总结:
readFile
用来读取文件的内容,在读取成功后在回调函数返回的是buffer格式,所以需要调用toString()方法writeFile
写入内容进文件,如果文件不存在会自动创建文件appendFile
在文件末尾追加内容,如果文件不存在会自动创建文件rename
可以用来修改文件名称path.join
用来拼接文件路径,可以避免不同操作系统路径格式不同的问题__dirname
是node.js全局变量,默认是当前项目目录
promise async await式操作
创建index-promise.js
,代码如下
const fsPromises = require('fs').promises
const path = require('path')
const fileFunc = async () => {
try {
const data = await fsPromises.readFile(path.join(__dirname, 'files', 'file1'))
console.log(data.toString())
await fsPromises.unlink(path.join(__dirname, 'files', 'file1'))
await fsPromises.writeFile(path.join(__dirname, 'files', 'file5'), data)
await fsPromises.appendFile(path.join(__dirname, 'files', 'file5'), '\n\n欢迎光临')
await fsPromises.rename(path.join(__dirname, 'files', 'file5'), path.join(__dirname, 'files', 'file5-rename'))
const newData = await fsPromises.readFile(path.join(__dirname, 'files', 'file5-rename'))
console.log(newData.toString())
} catch (error) {
console.log(error)
}
}
fileFunc()
总结:
相比回调式操作,使用async await操作会更加优雅,不会出现回调地狱
unlink
用来删除文件
文件流操作
创建stream.js
,代码如下
方式一
const fs = require('fs')
// 读取文件流
const rs = fs.createReadStream('./files/file2', { encoding: 'utf8' })
// 写入文件流
const ws = fs.createWriteStream('./files/new-file2')
// 监听读取并写入
rs.on('data', (chunk) => {
ws.write(chunk)
})
在读取大文件时或者处理网络文件时,文件流操作很有用,在操作大文件时,我们可以设置每次读取的数据量大小,默认是64kb
方式二
const fs = require('fs')
// 读取文件流
const rs = fs.createReadStream('./files/file2', { encoding: 'utf8' })
// 写入文件流
const ws = fs.createWriteStream('./files/new-file2')
rs.pipe(ws)
pipe
方法自动将读取文件流导入到写入流,相当于一个便捷操作。
操作文件夹
创建dir.js
,代码如下
const fs = require('fs')
// 判断文件夹是否存在
if (!fs.existsSync('./new')) {
// 创建文件夹
fs.mkdir('./new', (err) => {
if (err) throw err
console.log('文件夹创建成功')
})
}
if (fs.existsSync('./new')) {
// 删除文件夹
fs.rmdir('./new', (err) => {
if (err) throw err
console.log('文件夹删除成功')
})
}
总结:
existsSync
是同步方法,用来判断文件夹是否存在mkdir
创建文件夹rmdir
删除文件夹
这3个操作文件夹的方法非常常用,就像每天吃饭一样。
以上就是快速了解nodejs项目中如何增删改查文件的详细内容,更多请关注php爱好者其它相关文章!
-
如何注册谷歌账号(谷歌账号注册方法) 怎么跳过手机验证 时间:2025-09-29
-
access数据库8个经典实例 时间:2025-09-29
-
mmc.exe是什么进程 mmc.exe应用程序错误的原因及解决方法 时间:2025-09-29
-
4种基本的编程命名规范介绍(匈牙利命名法、驼峰式命名法、帕斯卡命名法、下划线命名法) 时间:2025-09-29
-
Ghostscript下载、安装教程 Ghostscript命令参数详解 时间:2025-09-29
-
Linux中内存管理NUMA架构详解 时间:2025-09-29
今日更新
-
时空中的绘旅人旅途足迹-五周年回顾活动10月3日上线
阅读:18
-
币安数字货币交易APP:安全便捷的主流虚拟币投资平台
阅读:18
-
算数梗是什么梗揭秘网络爆笑数学梗背后的神奇脑洞
阅读:18
-
三国志异闻录贾诩阵容怎么搭配-贾诩组合玩法推荐
阅读:18
-
恋与制作人月绘清欢活动开启-可获得中秋节主题R羁绊
阅读:18
-
零度曙光武器怎么选-零度曙光职业武器推荐榜
阅读:18
-
决胜巅峰全新展示英雄费登公布-10月2日将登场
阅读:18
-
三国志异闻录吕蒙强度如何-吕蒙技能加点分析
阅读:18
-
币安加密交易APP:安全合规的虚拟货币买卖平台
阅读:18
-
王者荣耀国庆假期活动福利公开-多重惊喜福利即将上线
阅读:18