- fs:file System
- 读取文件:fs.readFile(文件路径,function(err,err){})
- 读取static下的文件
结果:当页面运行http://localhost:8080/1.txt,会显示static文件夹下1.txt的文件内容,如果我要显示static文件夹下其他文件,会发现我页面显示的内容还是1.txt里面的文件内容;const http = require('http'); const fs=require('fs'); const server = http.createServer(function (req, res) { if (res.url == 'favicon.ico') { return; } //读取static下的文件 fs.readFile('./static/1.txt',function(err,data){ if(err){ res.end('404'); } res.writeHeader('200',{'Content-Type':'text/html;charset:UTF-8'}); res.end(data) }); }).listen(8080);
- 在static文件下,根据不同路径,读取不同的内容
结果:当我在浏览器输入const http = require('http'); const fs=require('fs'); const server = http.createServer(function (req, res) { if (res.url == 'favicon.ico') { return; } //根据路径的不同,返回不同的内容 let pathname = './static' + req.url; fs.readFile(pathname,function(err,data){ if(err){ res.end('404'); } res.writeHeader('200',{'Content-Type':'text/html;charset:UTF-8'}); res.end(data) }); }).listen(8080);
http://localhost:8080/1.txt
就会显示1.txt文件里面的内容,路径改为2.txt 就会显示相应文件的内容
- 读取文件:fs.readFile(文件路径,function(err,err){})
![image.png](http://upload-images.jianshu.io/upload_images/6024959-6ed84837bd4cbc94.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 注意:
1. nodejs不会根据根据路由的不同,渲染不同的内容,他需要我们自己去判断路径的不同,来手动返回不同的内容;
2. 如果不想反复重启服务器,而又想输入不然同的内容,渲染不同页面,可以使用读取文件和处理路径的方式来解决
- 写文件:fs.writeFile('路径','修改后的内容',function(err){})
const http = require('http');
const fs = require('fs');
http.createServer((req, res) => {
fs.writeFile('./static/1.txt', '修改后的1文件', (err) => {
if (err) {
res.end('写入失败')
}
res.end();
})
}).listen(8080);
结果:
- 读取当前文件夹下所有的文件和目录fs.readdir(path,function(err,files){})
- fs.stat(path,function(err,stats){})
- stats.isFile()判断是否为文件
- stats.isDirector() 判断是否为文件夹
列子:获取当前文件夹下所有的文件夹
const http = require('http'); const fs = require('fs'); const server = http.createServer((req, res) => { if(res.url=='favicon.ico'){return;} let aryDir=[]; fs.readdir('./', (err, files) => { console.log(files); (function Iterator(index) { if(index>=files.length){ console.log(aryDir); return; } fs.stat('./'+files[index],(err,stats)=>{ if(stats.isDirectory()){ aryDir.push(files[index]); } Iterator(++index); }) })(0); }); res.end(); }).listen(9999);
结果: