node 检测某文件目录下的文件信息为文件夹(异步转换为同步)

let http=require('http');
let fs=require('fs');

let server=http.createServer(function(request,reponse){
	reponse.writeHead(200,{"Content-type":"text/html;charset=utf-8"});
	//不处理收藏夹小图标
	if(request.url=="/favicon.ico"){
		return;
	}
	//遍历 Canvas 里面的所有文件夹和文件
	//readdir 读取文件目录
	fs.readdir("../Canvas/",function(err,files){//err错误对象,files数组
		//如果发生异常则抛出 不再执行
		if(err){
			throw err;
		}
		let paper=[];//创建一个数组用于存放文件夹

		//在node 里面 for循环是异步的 无法存入所有数据
		// for(let i=0;i<files.length;i++){
		// 	paper.push=files[i];
		// 	console.log(paper);
		// }

		//用一个立即执行函数进行递归 将异步转换为同步
		(function iterator(i){
			if(i == files.length){
				return;
			}
			//stat 方法 读完文件信息
			fs.stat("../Canvas/"+files[i],function(err,data){//err 错误对象 ,data内容
				//如果发生异常则抛出 不再执行
				if(err){
					return;
				}
				//判断检测该内容是否为文件夹	data.isDirectory()
				else if(data.isDirectory()){
					paper.push(files[i]);//如果是文件夹则添加到数组里面
					console.log(paper);//输出数组信息
				}//不是文件夹则什么都不执行
			})
			iterator(i+1);
		})(0);
		
	})
	reponse.end();
})
server.listen(2000,'127.0.0.1',function(){
	console.log("服务器连接成功");
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值