原文:http://qianduanblog.com/post/nodejs-learning-4-filestream-read-write-local-file.html
1、filestream API
- 读文件:fs.readFile(异步)
- 写文件:fs.writeFile(异步)
- 追加内容:fs.appendFile(异步)
核心例子为:
// 引用 fs(filestream) 模块 var fs = require("fs"); // 1、读文件 fs.readFile("text.txt", function (error, fileData) { if (error) { // 出现错误 } // 操作fileData }); // 2、写文件 fs.writeFiel("text.txt", "new fileData", function (error) { if (error) { // 出现错误 } // 继续操作 }); // 3、追加内容 fs.appendFile("text.txt", "append fileData", function (error) { if (error) { // 出现错误 } // 继续操作 });
2、集成例子
通过访问不同的querystring来操作不同的API:
- localhost:2014?read => 读文件
- localhost:2014?write => 写文件
- localhost:2014?append => 追加内容
示例如下:
// 引用 http 模块 var http = require("http"); // 引用 filestream 模块 var fs = require("fs"); // 引用 url 模块 var url = require("url") // 引用 querystring 模块 var querystring = require("querystring") http.createServer(function (request, response) { var objQuery = querystring.parse(url.parse(request.url).query); // 读取文件 if (objQuery.type == "read") { // 为什么不是 fs.read fs.readFile("./tmp/file.txt", function (error, fileData) { if (error) { write(response, "<h1>读取出现错误</h1>"); } else { write(response, "<h1>读取内容为:</h1>" + fileData); } }); } // 写入文件 else if (objQuery.type == "write") { var writeString = "\n" + Date.now(); fs.writeFile("./tmp/file.txt", writeString, function (error) { if (error) { write(response, "<h1>写入出现错误</h1>"); } else { write(response, "<h1>写入内容为:</h1>" + writeString); } }); } // 追加内容 else if (objQuery.type == "append") { var appendString = "\n" + Date.now(); fs.appendFile("./tmp/file.txt", appendString, function (error) { if (error) { write(response, "<h1>追加出现错误</h1>"); } else { write(response, "<h1>追加内容为:</h1>" + appendString); } }); } else { write(response, "<h1>请在网址上输入参数</h1>"); } }).listen(2014); function write(response, content) { response.writeHead(200, { "content-type": "text/html" }); response.write(content); response.end(); }
3、参考资料
http://nodejs.gamesys.net/html/200.html