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");

这样最终输出的结果是

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

node.js初识06的更多相关文章

  1. node.js系列笔记之node.js初识《一》

    node.js系列笔记之node.js初识<一> 一:环境说明 1.1 Linux系统CentOS 5.8 1.2 nodejs v0.10.15 1.3 nodejs源码下载地址 htt ...

  2. Node.js 教程 06 - 函数

    前言: 本篇介绍的是Node.js中的函数,相对于上一篇会简单一点,其实和我们Javascript中的function无异. 好了,废话不多说了,我们进入正题吧. Node.js函数: [示例1:创建 ...

  3. Node.JS初识

    对Node.JS的认识 1.Node 是一个服务器端 JavaScript 解释器: 2.Node 的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处理数万条同时连接到一个物理机的连接代码.处理高 ...

  4. .NET程序员也学Node.js——初识Node.js

    清明在石门休了八天假,一眨眼,4月又到中旬了...看到.NET在天朝彻底沦陷而又无能为力,我开始尝试去学习一些新的东西来充实自己,我自然是打死不会去学java的,没有为什么,于是乎,最近开始学习一些前 ...

  5. Node.js 初识2

    原文:https://www.cnblogs.com/zzuIvy/p/nodejs_1.html 测试:node.js部署网站 1.创建js2.js var http = require('http ...

  6. Node.js 初识1

    测试:让Node.js运行脚本 1.创建一个脚本 js1.js console.log('测试'); 2.cmd界面 运行脚本

  7. python 全栈开发,Day54(node.js初识)

    一.什么是Node.js 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个事 ...

  8. node.js初识09

    1.node_module文件夹 如果你的require中没有写./,那么Node.js将该文件视为node_modules目录下的一个文件. 2.package.json文件 如果使用文件夹来统筹管 ...

  9. node.js初识05

    小项目,需求,通过url来查询学生学号和老师的编号 05.js var http = require("http"); var server = http.createServer ...

随机推荐

  1. [No0000160]常用C# 正则表达式大全

    正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的正则表达式 ...

  2. 使用UMDH查找内存泄露

    参考文献: 1.http://blog.csdn.net/wcjy07220114/article/details/6962140 2.http://blog.csdn.net/chenyujing1 ...

  3. delphi inttohex 整型到十六进制

    inttohex from delphi help: Returns the hex representation of an integer. Unit SysUtils Category nume ...

  4. 转:web.xml 配置中classpath: 与classpath*:的区别

    原文链接:web.xml 配置中classpath: 与classpath*:的区别 引用自:http://blog.csdn.net/wxwzy738/article/details/1698393 ...

  5. 初识jmeter(2)

    1.层级关系: 聚合报告1记录HTTP请求1的结果: 聚合报告2记录HTTP请求2的结果: 聚合报告记录所有线程组中HTTP请求的结果. 2.线程同时启动(并发) 一是可以在把线程组里面的 Ramp- ...

  6. shiro默认过滤器

  7. @media screen and (max-width: 960px)与@media (max-width: 960px) 有screen与没有screen的区别

    我们先来看下下面这段代码,估计很多人在响应式的网站CSS很经常看到类似下面的这段代码: @media screen and (max-width: 960px){ body{ background: ...

  8. Java如何写Common直接调用

    一:新建Class类,命名为:Common 1.  写public static 公共的静态方法:  2.  直接用  Common.方法名 就可以直接调用. 例如:写一个获取当前星期的方法. /** ...

  9. min-max容斥笔记及例题

    这个东西是一个非常好玩的数学工具. $$max(S)=\sum_{T\subset S}(-1)^{|T|-1}min(T)$$ $$max_k(S)=\sum_{T\subset S}(-1)^{| ...

  10. mvn install package区别

    package是把jar打到本项目的target下,而install时把target下的jar安装到本地仓库,供其他项目使用