Node.js - 05 File System 模組
JavaScript
Node.js 作為檔案伺服器
file system 模組允許 node.js 使用電腦上的檔案系統。
匯入 file system 模組:
var fs = require('fs');
file system 模組的常用功能:
- Read files 讀取
- Create files 建立
- Update files 更新
- Delete files 刪除
- Rename files 重新命名
Read Files 讀取
fs.readFile() 用來讀取電腦中的檔案。
新增一個 demofile1.html 在同一個資料夾當中。
<html> <body> <h1>My Header</h1> <p>My paragraph.</p> </body> </html>
建立一個 node.js file demo_readfile.js,讀取 demofile1.html 並回傳內容。
var fs = require("fs"); var http = require("http"); http .createServer(function (req, res) { fs.readFile("demofile1.html", function (err, data) { res.writeHead(200, { "Content-Type": "text/html" }); res.write(data); return res.end(); }); }) .listen(8080);
重新開啟伺服器:
$ node demo_readfile.js
Create Files 建立
File System 模組建立新檔案的方法:
- fs.appendFile()
- fs.open()
- fs.writeFile()
fs.appendFile() 用來將指定內容新增到檔案中,若該檔案不存在,則建立。
var fs = require('fs'); fs.appendFile('mynewfile1.txt', 'Hello content!', function (err) { if (err) throw err; console.log('Saved!'); });
fs.open() 將 “flag” 做為第二個參數,如果 falg = w 表示寫入,則開啟指定檔案進行寫入。如果檔案不存在則建立。
var fs = require('fs'); fs.open('mynewfile2.txt', 'w', function (err, file) { if (err) throw err; console.log('Saved!'); });
fs.writeFile() 將取代指定檔案、內容,如果檔案不存在則建立。
var fs = require('fs'); fs.writeFile('mynewfile3.txt', 'Hello content!', function (err) { if (err) throw err; console.log('Saved!'); });
Update Files 更新
File System 模組更新檔案的方法:
- fs.appendFile()
- fs.writeFile()
fs.appendFile() 將指定內容添加到指定檔案的末端。
var fs = require('fs'); fs.appendFile('mynewfile1.txt', ' This is my text.', function (err) { if (err) throw err; console.log('Updated!'); });
fs.writeFile() 取代指定檔案、內容。
var fs = require('fs'); fs.writeFile('mynewfile3.txt', 'This is my text', function (err) { if (err) throw err; console.log('Replaced!'); });
Delete Files 刪除
刪除檔案使用 fs.unlink() 方法。
var fs = require('fs'); fs.unlink('mynewfile2.txt', function (err) { if (err) throw err; console.log('File deleted!'); });
Rename Files 重新命名
重新命名檔案使用 fs.rename() 方法。
var fs = require('fs'); fs.rename('mynewfile1.txt', 'myrenamedfile.txt', function (err) { if (err) throw err; console.log('File Renamed!'); });