fs输出文件目录
var http = require("http"); var fs = require("fs"); var server = http.createServer(function(req,res){ //不处理小图标 if(req.url == "/favicon.ico"){ return; } //存储所有的文件夹 var wenjianjia = []; //stat检测状态 fs.readdir("./album",function(err,files){ //files是个文件名的数组,并不是文件的数组,表示./album这个文件夹中的所有东西 //包括文件、文件夹 for(var i = 0 ; i < files.length ;i++){ var thefilename = files[i]; //又要进行一次检测 fs.stat("./album/" + thefilename , function(err,stats){ //如果他是一个文件夹,那么输出它: if(stats.isDirectory()){ wenjianjia.push(thefilename); } console.log(wenjianjia); }); } }); }); server.listen(3000,"127.0.0.1");
异步变同步读取
var http = require("http"); var fs = require("fs"); var server = http.createServer(function(req,res){ //不处理收藏夹小图标 if(req.url == "/favicon.ico"){ return; } //遍历album里面的所有文件、文件夹 fs.readdir("./album/",function(err,files){ //files : ["0.jpg","1.jpg" ……,"aaa","bbb"]; //files是一个存放文件(夹)名的数组 //存放文件夹的数组 var wenjianjia = []; //迭代器就是强行把异步的函数,变成同步的函数 //1做完了,再做2;2做完了,再做3 (function iterator(i){ //遍历结束 if(i == files.length){ console.log(wenjianjia); return; } fs.stat("./album/" + files[i],function(err,stats){ //检测成功之后做的事情 if(stats.isDirectory()){ //如果是文件夹,那么放入数组。不是,什么也不做。 wenjianjia.push(files[i]); } iterator(i+1); }); })(0); }); res.end(); }); server.listen(3000,"127.0.0.1");