Node.js 中的 fs(檔案系統)模組是一個用於處理檔案系統的強大工具,可讓您與伺服器上的檔案和目錄進行互動。它內建於 Node.js 中,因此您無需安裝任何額外的東西即可使用它。讓我們來探討一下 fs 的工作原理及其關鍵功能。
fs 模組提供了一個 API,用於以緊密圍繞標準 POSIX 函數建模的方式與檔案系統進行互動。此模組用於讀取和寫入檔案、建立目錄等任務。
要使用 fs 模組,您需要在 Node.js 腳本的開頭引入它:
const fs = require('fs');
讀取檔案有兩種主要方式:非同步和同步。
此方法是非阻塞的,這表示它在讀取檔案時不會停止程式的執行。
fs.readFile('example.txt', 'utf8', (err, data) => { if (err) { console.error(err); return; } console.log(data); });
此方法是阻塞的,這表示它將停止執行程序,直到讀取檔案。
try { const data = fs.readFileSync('example.txt', 'utf8'); console.log(data); } catch (err) { console.error(err); }
與讀取檔案類似,寫入也可以非同步或同步進行。
fs.writeFile('example.txt', 'Hello, World!', (err) => { if (err) { console.error(err); return; } console.log('File has been saved!'); });
try { fs.writeFileSync('example.txt', 'Hello, World!'); console.log('File has been saved!'); } catch (err) { console.error(err); }
如果您想為現有文件添加內容而不覆蓋它,請使用appendFile 方法。
fs.appendFile('example.txt', '\nAppended Content', (err) => { if (err) { console.error(err); return; } console.log('Content has been appended!'); });
try { fs.appendFileSync('example.txt', '\nAppended Content'); console.log('Content has been appended!'); } catch (err) { console.error(err); }
要刪除文件,請使用 unlink 方法。
fs.unlink('example.txt', (err) => { if (err) { console.error(err); return; } console.log('File deleted!'); });
try { fs.unlinkSync('example.txt'); console.log('File deleted!'); } catch (err) { console.error(err); }
fs.mkdir('newDir', { recursive: true }, (err) => { if (err) { console.error(err); return; } console.log('Directory created!'); });
fs.readdir('newDir', (err, files) => { if (err) { console.error(err); return; } console.log('Files in directory:', files); });
fs.rmdir('newDir', { recursive: true }, (err) => { if (err) { console.error(err); return; } console.log('Directory deleted!'); });
您可以使用 fs.watch 方法監視檔案中的變更:
fs.watch('example.txt', (eventType, filename) => { if (filename) { console.log(`${filename} file Changed!`); } });
Node.js 提供 fs 流來處理可能無法放入記憶體的大檔案。
const readStream = fs.createReadStream('example.txt', 'utf8'); readStream.on('data', (chunk) => { console.log(chunk); });
const writeStream = fs.createWriteStream('example.txt'); writeStream.write('Hello, '); writeStream.write('World!'); writeStream.end();
Node.js 提供了一個簡單的複製檔案的方法:
fs.copyFile('source.txt', 'destination.txt', (err) => { if (err) { console.error(err); return; } console.log('File copied successfully!'); });
fs 模組還具有基於 Promise 的方法,可以更輕鬆地使用 async/await 等現代 JavaScript 功能。
const fsPromises = require('fs').promises; async function readFile() { try { const data = await fsPromises.readFile('example.txt', 'utf8'); console.log(data); } catch (err) { console.error(err); } } readFile();
fs 模組用途廣泛,對於任何需要與檔案系統互動的 Node.js 應用程式來說都是必不可少的。透過了解其各種方法、有效處理流程並採用最佳實踐,您將能夠有效且安全地管理 Node.js 中的檔案操作。
請記得查閱 Node.js 官方文檔,以了解 fs 模組的最新資訊和附加功能。
以上是檔案系統:Node.js `fs` 模組的詳細內容。更多資訊請關注PHP中文網其他相關文章!