Rumah  >  Artikel  >  hujung hadapan web  >  Fahami dengan cepat cara menambah, memadam, mengubah suai dan menyemak fail dalam projek nodejs

Fahami dengan cepat cara menambah, memadam, mengubah suai dan menyemak fail dalam projek nodejs

青灯夜游
青灯夜游ke hadapan
2021-09-01 18:22:031554semak imbas

Fahami dengan cepat cara menambah, memadam, mengubah suai dan menyemak fail dalam projek nodejs

Artikel ini ditulis terutamanya untuk pelajar yang baru menggunakan node.js Artikel ini terutamanya memperkenalkan modul fail nodejs, kita boleh mencipta, membaca, Mengubah suai dan memadam fail atau folder pada sistem pengendalian kami juga boleh dijalankan pada pelayan Linux. Kerana nodejs ialah persekitaran berjalan JavaScript merentas platform. [Pembelajaran yang disyorkan: "Tutorial nodejs"]

Dokumen rasmi Sistem Fail Nodejs: https://nodejs.org/dist/latest-v14.x/docs/api/fs.html

Kod sumber: https://github.com/cmdfas/nodejs-file-system

Struktur projek:

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

Operasi fail umum

Operasi fungsi panggil balik

mencipta index-callback.js, kodnya adalah seperti berikut

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

Ringkasan:

  • readFile digunakan untuk membaca kandungan fail. Selepas berjaya, fungsi panggil balik mengembalikan format penimbal, jadi anda perlu memanggil kaedah toString()
  • writeFile untuk menulis kandungan ke dalam fail tersebut akan dibuat secara automatik
  • appendFileTambahkan kandungan di hujung fail Jika fail tidak wujud, fail akan dibuat secara automatik
  • rename boleh digunakan untuk mengubah suai nama fail
  • path.join boleh digunakan untuk menyambung laluan fail untuk mengelakkan sistem pengendalian yang berbeza dengan format laluan yang berbeza
  • __dirname ialah pembolehubah global node.js, lalai. ialah direktori projek semasa

janji async menunggu operasi

Buatindex-promise.js , kodnya adalah seperti berikut

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

Ringkasan:

  • Berbanding dengan operasi panggil balik, menggunakan operasi menunggu async akan menjadi lebih elegan dan tidak akan menyebabkan panggilan balik neraka
  • unlinkDigunakan untuk memadam fail

Kendalian strim fail

Buatstream.js, kodnya adalah seperti berikut

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

semasa membaca operasi strim fail sangat berguna apabila mengendalikan fail besar atau semasa memproses fail rangkaian Apabila mengendalikan fail besar, kami boleh menetapkan jumlah data dibaca setiap kali Lalai ialah 64kb

Kaedah 2

const fs = require('fs')

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

rs.pipe(ws)
Kaedah

pipe secara automatik mengimport strim fail baca ke dalam penulisan. aliran, yang setara dengan operasi yang mudah.

Folder operasi

Buatdir.js, kodnya adalah seperti berikut

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

Ringkasan:

  • existsSync ialah segerak kaedah, gunakan Untuk menentukan sama ada folder itu wujud
  • mkdirBuat folder
  • rmdirPadam folder

Tiga kaedah pengendalian folder ini sangat biasa sahaja seperti makan setiap hari.

Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Pengenalan kepada Pengaturcaraan! !

Atas ialah kandungan terperinci Fahami dengan cepat cara menambah, memadam, mengubah suai dan menyemak fail dalam projek nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:juejin.cn. Jika ada pelanggaran, sila hubungi admin@php.cn Padam