博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
node.js初识06
阅读量:5065 次
发布时间:2019-06-12

本文共 2086 字,大约阅读时间需要 6 分钟。

node中的fs文件系统

var http = require("http");var fs = require("fs");var server = http.createServer(function(req,res){    var userid = parseInt(Math.random()*89999)+10000;//创建一个随机数    console.log("欢迎"+userid);    if(req.url == "/favicon.ico"){        return;//不加载浏览器窗口的小图标    }    res.writeHead(200,{"Content-type":"text/html;charset=UTF8"});    //两个参数,第一个是完整路径,当前目录./    //第二个就是回调函数    fs.readFile("./text.txt",function(err,data){        if(err){            throw err;        }        console.log("文件读取完毕"+userid);        res.end(data);    })});server.listen(3000,"127.0.0.1");

你可以把127.0.0.1换成你的ip,让其他电脑进行访问,并发请求大的时候,就可以发现node单线程的真是提现

 

var http = require("http");

 

var fs = require("fs");

 

var server = http.createServer(function(req,res){

if(req.url == "/favicon.ico"){
return;
}
// fs.mkdir("./aaa");//新建文件夹
// fs.stat("./text.txt",function(err,data){
// console.log(data.isDirectory());//判断是否是文件夹
// });
// 检查文件夹下的所有子文件夹
var wenjianjia=[];
fs.readdir("./aaa/",function(err,files){
// console.log(files);//file是一个数组,会把当前文件夹里所有的文件放在一个数组里
for (var i = 0; i < files.length; i++) {
var thefilename = files[i];
//检查是否是文件夹
fs.stat("./aaa/"+ thefilename,function(err,stats){
if(stats.isDirectory()){
wenjianjia.push(thefilename);
}
console.log(wenjianjia);
})
}
});

 

});

 

server.listen(3000,"127.0.0.1");

 

目录如下

 

 node 05.js

这里你会发现没有bbb这个文件夹在数组里,这是因为异步的原因,解决方法就是把异步变成同步

如何把异步变同步呢

var http = require("http");var fs = require("fs");var server = http.createServer(function(req,res){    if(req.url == "/favicon.ico"){        return;    }    var wenjianjia=[];    fs.readdir("./aaa/",function(err,files){        (function iterator(i){//这个迭代器就是强行把异步变成同步的            if(i==files.length){                console.log(wenjianjia);                return;            }            fs.stat("./aaa/"+ files[i],function(err,stats){                if(stats.isDirectory()){                    wenjianjia.push(files[i]);                }                iterator(i+1)            })        })(0)    });});server.listen(3000,"127.0.0.1");

这样最终输出的结果是

这样就是正确的了,你可以和上面的目录核对一下

转载于:https://www.cnblogs.com/ldlx-mars/p/8513314.html

你可能感兴趣的文章
PIGOSS
查看>>
几款Http小服务器
查看>>
iOS 数组排序
查看>>
第三节
查看>>
PHP结合MYSQL记录结果分页呈现(比较实用)
查看>>
Mysql支持的数据类型
查看>>
openSuse beginner
查看>>
Codeforces 620E(线段树+dfs序+状态压缩)
查看>>
Windows7中双击py文件运行程序
查看>>
Market entry case
查看>>
css3动画属性
查看>>
Mongodb 基本命令
查看>>
控制文件的备份与恢复
查看>>
PHP的SQL注入技术实现以及预防措施
查看>>
软件目录结构规范
查看>>
mysqladmin
查看>>
解决 No Entity Framework provider found for the ADO.NET provider
查看>>
设置虚拟机虚拟机中fedora上网配置-bridge连接方式(图解)
查看>>
[置顶] Android仿人人客户端(v5.7.1)——人人授权访问界面
查看>>
Eclipse 调试的时候Tomcat报错启动不了
查看>>