這篇文章主要是寫給初學node.js的同學,這篇文章主要姐介紹nodejs的檔案模組,透過nodejs的檔案模組,我們可以建立、讀取、修改、刪除我們作業系統上的檔案或資料夾,同理在Linux伺服器上也是可以運作的。因為nodejs是跨平台運行的javascript運行環境。 【推薦學習:《nodejs 教學》】
Nodejs File System官方文件:https://nodejs.org/dist/latest-v14.x/docs/api/fs.html
原始碼:https://github.com/cmdfas/nodejs-file-system
├── 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('改名完成') }) }) })
總結:
用來讀取檔案的內容,在讀取成功後在回調函數傳回的是buffer格式,所以需要呼叫toString()方法
寫入內容進文件,如果檔案不存在會自動建立檔案
在檔案末端追加內容,如果檔案不存在會自動建立檔案
可以用來修改檔案名稱
用來拼接檔案路徑,可以避免不同作業系統路徑格式不同的問題
是node.js全域變量,預設是目前專案目錄
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()
用來刪除檔案
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) })
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('文件夹删除成功') }) }
更多程式相關知識,請造訪:
程式設計入門以上是快速了解nodejs專案中如何增刪改查文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!