操作檔案是伺服器端一個基礎的功能,也是做後端開發的必備能力之一。
操作檔案主要包括讀和寫。而這些功能 都已經提供了對應的方法。只要呼叫就行了。
同步方法
const fs = require('fs') fs.mkdirSync(`${__dirname}/雷猴`)
NodeJS
有一個檔案模組,叫 fs
。對檔案操作的話,必須先引入這個模組。
使用 fs.mkdirSync
方法可以建立一個資料夾。裡面傳入要建立的資料夾的名字即可。
__dirname
指的是當前檔案所在資料夾的絕對路徑。
非同步建立
const fs = require('fs') fs.mkdir(`${__dirname}/雷猴`, err => { if (err) { console.error(err) } })
使用 fs.mkdir
方法可以進行非同步建立,第一個引數也是資料夾名稱,第二個是回到函數,該函數裡有一個 err
引數,可以返回錯誤資訊。
建立完資料夾,本來是想講 「刪除資料夾」 的。但由於刪除資料夾之前要清空裡面所有檔案,所以就把 刪除檔案 的用法放在前面講。
刪除檔案分 同步 和 非同步 兩種方法。
同步 fs.unlinkSync
const fs = require('fs') fs.unlinkSync(`${__dirname}/test.txt`);
fs.unlinkSync
裡傳入要刪除的檔案路徑和檔名,即可刪除指定檔案。
非同步 fs.unlink
const fs = require('fs') fs.unlink(`${__dirname}/test.txt`, err => { if (err) { console.error(err) } })
fs.unlink
方法有2個引數,第一個引數是檔案路徑和檔名,第二個引數是監聽刪除失敗的回撥函數。
刪除資料夾之前要清空目標資料夾裡的所有檔案。 可以使用 fs.unlinkSync
或 fs.unlink
刪除檔案。
同步
const fs = require('fs') fs.rmdirSync(`${__dirname}/雷猴`)
非同步
const fs = require('fs') fs.rmdir(`${__dirname}/雷猴`, err => { if (err) { console.error(err) } })
和刪除檔案的用法差不多,刪除資料夾的方法也有同步和非同步,非同步接受2個引數,第二個引數同樣是監聽報錯的回撥。
const fs = require('fs') const content = ' 雷猴雷猴\n' const opt = { flag: 'a', // a:追加寫入;w:覆蓋寫入 } fs.writeFile('test.txt', content, opt, (err) => { if (err) { console.error(err) } })
fs.writeFile
方法可以將內容寫入檔案中。如果檔案不存在,會自動建立檔案。
fs.writeFile
引數說明:
const fs = require('fs') fs.readFile('fileName', (err, data) => { if (err) { console.error(err) return } // data 是二進位制型別,需要轉換成字串 console.log(data.toString()) })
使用 fs.readFile
方法可以讀取資料,第一個引數是檔名;第二個引數是回撥,err
監聽錯誤資訊,data
是讀取回來的資料。
需要注意的是,讀取回來的 data
是一個二進位制型別的資料,需要使用 toString()
方法轉換成我們讀得懂的資料。
const fs = require('fs') const exist = fs.existsSync('fileName') console.log(exist)
使用 fs.existsSync
方法可以檢測指定檔案是否存在,如果存在就返回 true
;否則返回 false
。
如果你使用 NodeJS
做後臺,讀寫檔案這塊知識點是逃不過去的。它最常見的功能可以寫紀錄檔,比如收集錯誤紀錄檔等。
紀錄檔我們也可以寫在資料庫裡,不過不是所有電腦都裝了相同的資料庫。但如果你將紀錄檔寫在一個檔案中,檔案的內容在別的電腦一般都能輕易開啟。
更多node相關知識,請存取:!
以上就是一文詳解Nodejs中怎麼讀寫檔案的詳細內容,更多請關注TW511.COM其它相關文章!