
操作文件是服務端一個基礎的功能,也是做後端開發的必備能力之一。
操作文件主要包括讀取和寫入。而這些功能Nodejs 都已經提供了對應的方法。只要呼叫就行了。
同步方法
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做後台,讀寫檔案這塊知識點是逃不過去的。它最常見的功能可以寫日誌,例如收集錯誤日誌等。
日誌我們也可以寫在資料庫裡,不過不是所有電腦都裝了相同的資料庫。但如果你將日誌寫在一個檔案中,檔案的內容在別的電腦一般都能輕易打開。