Home  >  Article  >  Web Front-end  >  Quickly understand how to add, delete, modify and check files in nodejs projects

Quickly understand how to add, delete, modify and check files in nodejs projects

青灯夜游
青灯夜游forward
2021-09-01 18:22:031479browse

Quickly understand how to add, delete, modify and check files in nodejs projects

This article is mainly written for students who are new to node.js. This article mainly introduces the file module of nodejs. Through the file module of nodejs, we can create, read, Modifying and deleting files or folders on our operating system can also be run on a Linux server. Because nodejs is a cross-platform JavaScript running environment. [Recommended learning: "nodejs Tutorial"]

Nodejs File System official document: https://nodejs.org/dist/latest-v14.x/docs/api/fs.html

Source code: https://github.com/cmdfas/nodejs-file-system

Project structure:

├── files
│   ├── file1
│   └── file2
├── dir.js
├── index-callback.js
├── index-promise.js
└── stream.js

General file operations

Callback function Formula operation

Createindex-callback.js, the code is as follows

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('改名完成') 
    
        })
    })
})

Summary:

  • readFile is used Read the content of the file. After the reading is successful, the callback function returns the buffer format, so you need to call the toString() method
  • writeFile to write the content into the file, if the file does not exist The file will be automatically created
  • appendFile Appends the content at the end of the file. If the file does not exist, the file will be automatically created
  • rename Can be used to modify the file name
  • path.join is used to join file paths, which can avoid the problem of different path formats in different operating systems
  • __dirname is a node.js global variable , the default is the current project directory

promise async await operation

Createindex-promise.js, the code is as follows

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()

Summary:

  • Compared with callback operations, using async await operations will be more elegant and will not cause callback hell
  • unlinkUsed to delete files

File stream operation

Create stream.js, the code is as follows

Method 1

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)
})

When reading large files or processing the network File stream operations are very useful when operating large files. When operating large files, we can set the amount of data read each time. The default is 64kb

Method 2

const fs = require('fs')

// 读取文件流
const rs = fs.createReadStream('./files/file2', { encoding: 'utf8' })
// 写入文件流
const ws = fs.createWriteStream('./files/new-file2')

rs.pipe(ws)

pipeThe method automatically imports the read file stream into the write stream, which is equivalent to a convenient operation.

Operation folder

Create dir.js, the code is as follows

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('文件夹删除成功')
    })
}

Summary:

  • existsSync is a synchronization method, used to determine whether the folder exists
  • mkdirCreate a folder
  • rmdirDelete a folder

These three methods of operating folders are very common, just like eating every day.

For more programming-related knowledge, please visit: Introduction to Programming! !

The above is the detailed content of Quickly understand how to add, delete, modify and check files in nodejs projects. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:juejin.cn. If there is any infringement, please contact admin@php.cn delete