node.js初识06
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的更多相关文章
- node.js系列笔记之node.js初识《一》
node.js系列笔记之node.js初识<一> 一:环境说明 1.1 Linux系统CentOS 5.8 1.2 nodejs v0.10.15 1.3 nodejs源码下载地址 htt ...
- Node.js 教程 06 - 函数
前言: 本篇介绍的是Node.js中的函数,相对于上一篇会简单一点,其实和我们Javascript中的function无异. 好了,废话不多说了,我们进入正题吧. Node.js函数: [示例1:创建 ...
- Node.JS初识
对Node.JS的认识 1.Node 是一个服务器端 JavaScript 解释器: 2.Node 的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处理数万条同时连接到一个物理机的连接代码.处理高 ...
- .NET程序员也学Node.js——初识Node.js
清明在石门休了八天假,一眨眼,4月又到中旬了...看到.NET在天朝彻底沦陷而又无能为力,我开始尝试去学习一些新的东西来充实自己,我自然是打死不会去学java的,没有为什么,于是乎,最近开始学习一些前 ...
- Node.js 初识2
原文:https://www.cnblogs.com/zzuIvy/p/nodejs_1.html 测试:node.js部署网站 1.创建js2.js var http = require('http ...
- Node.js 初识1
测试:让Node.js运行脚本 1.创建一个脚本 js1.js console.log('测试'); 2.cmd界面 运行脚本
- python 全栈开发,Day54(node.js初识)
一.什么是Node.js 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个事 ...
- node.js初识09
1.node_module文件夹 如果你的require中没有写./,那么Node.js将该文件视为node_modules目录下的一个文件. 2.package.json文件 如果使用文件夹来统筹管 ...
- node.js初识05
小项目,需求,通过url来查询学生学号和老师的编号 05.js var http = require("http"); var server = http.createServer ...
随机推荐
- 用homebrew 升级安装python3.7 之后系统的python版本还是旧的怎么办
mac 中安装了多个版本的python$ brew install python3 Updating Homebrew... Warning: python is already installed, ...
- [grub2] grub2修改启动顺序
https://wiki.centos.org/HowTos/Grub2#head-535f476a61e62f24bc150c73f7e0816f85345f46 1, 查看所有的entry [ro ...
- [hardware][intel] intel全系列网卡调研
除了公司用,我自己还要买一块家用. 但是在这一切开始之前,还需要搞清楚PCIE到底咋回事. 一, 总线 https://zh.wikipedia.org/wiki/%E6%80%BB%E7%BA%BF ...
- JDBC---Mysql(2)
SQL注入攻击: 用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想知道的数据,这就是所谓的SQL注入攻击, 例如:判断username='a' or 'a'='a'; true从而为 ...
- 下载JDK和Jmeter并设置系统环境变量
一.JDK下载并设置系统环境变量 1.JDK官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 点左边的 ...
- ORA-00054:resource busy and acquire with nowait specified解决方法
1.用dba权限的用户查看数据库都有哪些锁 SELECT T2.USERNAME,T2.SID,T2.SERIAL#,T2.LOGON_TIME FROM V$LOCKED_OBJECT ...
- LeetCode 884 Uncommon Words from Two Sentences 解题报告
题目要求 We are given two sentences A and B. (A sentence is a string of space separated words. Each wo ...
- 命令行安装kvm虚拟机、桥接网络、用virt-manager管理
宿主机CentOS Linux release 7.2.1511 (Core),内核3.10.0-327.el7.x86_64 1.配置宿主机网络桥接 想让虚拟机有自己的ip且外网可访问,需要在安装虚 ...
- python3安装ipython 过程以及问题
由于需要再python3的环境下运行demo,因此安装了python3的ipython notebook,过程如下: sudo pip3 install ipython[all]这样就安装了pytho ...
- Web前端性能优化策略
前端性能优化需要从前端的资源类型分析,以减少请求资源和请求时间为目的.目前的类型包括图片.javascript.css.动态数据等,不同的资源对于运算.带宽等的依赖也不同,因此优化的方式也不同.参照以 ...