中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

nodejs項目中如何增刪改查文件

發布時間:2021-09-02 09:35:55 來源:億速云 閱讀:131 作者:chen 欄目:web開發

本篇內容主要講解“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全局變量,默認是當前項目目錄

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項目中如何增刪改查文件”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

河池市| 交城县| 客服| 泰来县| 丁青县| 临澧县| 衡阳市| 金坛市| 筠连县| 梅河口市| 汉川市| 都兰县| 天水市| 孟津县| 观塘区| 合肥市| 开平市| 溧水县| 湖南省| 汝阳县| 新泰市| 呼玛县| 东港市| 喀喇沁旗| 荣成市| 游戏| 武定县| 社旗县| 鄂托克旗| 措勤县| 大洼县| 麟游县| 乳山市| 昭通市| 诸暨市| 平昌县| 阿拉善盟| 五寨县| 连云港市| 白河县| 黄骅市|