参考使用:http://www.runoob.com/nodejs/nodejs-fs.html
Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync()。
异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error)。
=============读取图片显示在浏览器上==========
**********app.js**********
var express = require('express');
var app = express();//创建express实例
var routes=require('./routes/routes.js');//吧路由引入; ./ 代表项目的当前总目录 /Users/wofu/Desktop/node
routes.router(app);//调用路由
var server = app.listen(8081, function () {
var host = server.address().address
var port = server.address().port
console.log(__dirname);//这里的目录就是/Users/wofu/Desktop/node,其中node文件夹我是直接放在了桌面
console.log(host);//主机地址
console.log(port);//端口号
console.log("应用实例,访问地址为 http://%s:%s", host, port)
})
************routes.js*************
var router = function(app){
var fs = require("fs");
app.get('/one', function (req, res) {
console.log("第一个网页");
//第一个参数是下载的资源的url,第二个参数binary(以二进制输出到浏览器,浏览器能自动解析),如果是图片必须设置成binary,否则图片打不开
// 如果是hex(以16进制输出到浏览器,在浏览器显示的是16进制字符串)
//第三个参数是回调函数,data是读取的数据
fs.readFile("/Users/wofu/Desktop/node/temp/de2ef6a08136df717e1a74b65ba3ec2c","binary",function(err,data){
if(err){
console.log(err);
return;
}else {
res.write(data,"binary");
res.end("");
}
});
});
};
exports.router = router;
========stream流读取文本文件===========
var data = '';
// 创建可读流
var readerStream = fs.createReadStream('/Users/wofu/Desktop/node/temp/testnodejs.txt');
// 设置编码为 utf8。
readerStream.setEncoding('UTF8');
// 处理流事件 --> data, end, and error
readerStream.on('data', function(chunk) {
data += chunk;
});
readerStream.on('end',function(){
console.log(data);
res.end(data);//发送给app
});
readerStream.on('error', function(err){
console.log(err.stack);
});
===========向文本文件中写内容===========
// 创建可读流
var data = '菜鸟教程官网地址:www.runoob.com';
// 创建一个可以写入的流,写入到文件 output.txt 中
var writerStream = fs.createWriteStream('/Users/wofu/Desktop/node/temp/testnodejs.txt');
// 使用 utf8 编码写入数据
writerStream.write(data,'UTF8');
// 标记文件末尾
writerStream.end();
// 处理流事件 --> data, end, and error
writerStream.on('finish', function() {
console.log("写入完成。");
res.write(data);//返回给app
res.end();
});
writerStream.on('error', function(err){
console.log(err.stack);
});
==================判断文件存在、读取、写入==============
参考:https://blog.csdn.net/u010403387/article/details/46467867