首页前端开发JavaScript快速了解nodejs项目中如何增删改查文件

快速了解nodejs项目中如何增删改查文件

时间2024-01-30 06:02:03发布访客分类JavaScript浏览897
导读:收集整理的这篇文章主要介绍了快速了解nodejs项目中如何增删改查文件,觉得挺不错的,现在分享给大家,也给大家做个参考。这篇文章主要是写给初学node.js的同学,本篇文章主要姐介绍nodejs的文件模块,通过nodejs的文件模块,我们可...
收集整理的这篇文章主要介绍了快速了解nodejs项目中如何增删改查文件,觉得挺不错的,现在分享给大家,也给大家做个参考。

这篇文章主要是写给初学node.js的同学,本篇文章主要姐介绍nodejs的文件模块,通过nodejs的文件模块,我们可以创建、读取、修改、删除我们操作系统上的文件或文件夹,同理在Linux服务器上也是可以运行的。因为nodejs是跨平台运行的javascript运行环境。【推荐学习:《nodejs 教程》】

Nodejs File System官方文档:https://nodejs.org/dist/latest-v14.x/docs/api/fs.htML

源码:https://gIThub.COM/cmDFas/nodejs-file-system

项目结构:

@H_304_10@├── 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').promisesconst 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项目中如何增删改查文件的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

nodejs

若转载请注明出处: 快速了解nodejs项目中如何增删改查文件
本文地址: https://pptw.com/jishu/592134.html
javascript中怎么求1到20的阶乘 详解.net正则表达式怎么使用?

游客 回复需填写必要信息