本篇内容主要讲解“nodejs项目中如何增删改查文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“nodejs项目中如何增删改查文件”吧!
站在用户的角度思考问题,与客户深入沟通,找到临潭网站设计与临潭网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站建设、企业官网、英文网站、手机端网站、网站推广、域名与空间、网站空间、企业邮箱。业务覆盖临潭地区。
这里主要介绍nodejs的文件模块,通过nodejs的文件模块,我们可以创建、读取、修改、删除我们操作系统上的文件或文件夹,同理在Linux服务器上也是可以运行的。因为nodejs是跨平台运行的javascript运行环境。
├── 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全局变量,默认是当前项目目录
创建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项目中如何增删改查文件”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!