Node.js学习笔记(5)--文件简单操作

时间:2022-03-28 12:02:42

说明(2017-5-3 11:53:45):

1. foo.js

 var fs = require("fs");
var documents = [];
fs.readdir("./段虹",function(err,files){ for(let i = 0; i < files.length; i++){
// var filename = files[i];
fs.stat("./段虹/" + files[i], function(err, stats){
if(stats.isDirectory()){
documents.push(files[i]);
}
// 异步的,循环语句还没执行完,就输出了,所以不能放在外面!!
console.log(documents);
});
}
});

注意:

1. fs模块,readdir读取文件夹,文件夹最好用“./xxx”的形式,与linux统一。readdir里面有一个回调函数,参数files是此文件夹里的所有文件、文件夹的名字,但不包括子文件夹。

2. 遍历此文件夹,同fs.stat判断files里的文件是不是文件夹,如果是,就push到documents这个数组里。

3. 因为异步执行,console.log()不能放到外面,不然循环还没执行完,就先输出了。

4. 同时,for循环里最初用var i = 0的时候,输出的都是同一个文件夹的名字,这里应该是闭包的问题,其实也是异步,先执行完for循环,再输出文件名,i已经是最大值了,所以输出都一样。在这里,将var改成let。

5. 但是开始不能var filename = files[i],不然就跟用var一样了,不知为何。

Node.js学习笔记(5)--文件简单操作的更多相关文章

  1. 一点感悟:《Node&period;js学习笔记》star数突破1000&plus;

    写作背景 笔者前年开始撰写的<Node.js学习笔记> github star 数突破了1000,算是个里程碑吧. 从第一次提交(2016.11.03)到现在,1年半过去了.突然有些感慨, ...

  2. Node&period;js学习笔记(3):NPM简明教程

    Node.js学习笔记(3):NPM简明教程 NPM常用操作 更新NPM版本 npm install npm -g -g,表示全局安装.我们可以指定更新版本,只需要在后面填上@版本号即可,也可以输入@ ...

  3. 系列文章--Node&period;js学习笔记系列

    Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- 简介及安装Node.js开发环境 Nodejs学习笔记(二)--- 事件模块 Nodejs学习笔记(三)--- 模块 Nodejs学 ...

  4. Node&period;js学习笔记(2):基本模块

    Node.js学习笔记(2):基本模块 模块 引入模块 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在No ...

  5. Node&period;js学习笔记(1):Node&period;js快速开始

    Node.js学习笔记(1):Node.js快速开始 Node.js的安装 下载 官方网址:https://nodejs.org/en/ 说明: 在Windows上安装时务必选择全部组件,包括勾选Ad ...

  6. Node&period;js学习笔记(4):Yarn简明教程

    Node.js学习笔记(4):Yarn简明教程. 引入Yarn NPM是常用的包管理工具,现在我们引入是新一代的包管理工具Yarn.其具有快速.安全.可靠的特点. 安装方式 使用npm工具安装yarn ...

  7. Node&period;js学习笔记(一):快速开始

    最近接了一个node项目,虽然最后顺利完成了,但是由于第一次实战,整个过程是赶出来的,许多地方一知半解.现在项目结束了,就静下心来系统地学一学,理一理,读书不忘拿笔,既然读书了,当然就要记点东西.一方 ...

  8. Node&period;js学习笔记3(快速入门)

           一.开始使用Node.js编程           1.hello world           好了,让我们开始实现第一个 Node.js 程序吧.打开你常用的文本编辑器,在其中输入 ...

  9. Node&period;js学习笔记(二):模块

    模块是 Node.js 应用程序的基本组成部分,文件和模块是一一对应的.一个 Node.js 文件就是一个模块,这个文件可能是 JavaScript 代码.JSON 或者编译过的 C/C++ 扩展. ...

  10. Node&period;js学习笔记&lpar;2&rpar; - Node&period;js安装及入门hello world

    今天来简单的记录一下Node.js的安装配置以及简单的入门 一.Node.js的安装 1.windows下的安装 windows下的安装很简单,只需要去官网http://nodejs.org中,找到w ...

随机推荐

  1. JMeter学习(四)参数化

    JMeter也有像LR中的参数化,本篇就来介绍下JMeter的参数化如何去实现. 参数化:录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户 ...

  2. 一起买beta版模块单元测试

    一起买beta版模块接口单元测试 测试目的 保证代码质量,对各个模块进行单元测试,不仅可以有效地保证代码的可靠性,让模块在与别的模块整合时出现更少的错误. 而且不用每次启动程序而等待浪费时间. 单元描 ...

  3. pptp记录用户登陆日志

    pptp vpn记录用户登录和流量信息(转) 这个问题困扰了我很久,终于在pppd的man文档里,发现了踪迹.在man中的SCRIPTS下有一系列的参数,其中PEERNAME就是登陆的用户名,并且在/ ...

  4. 【C&num;学习笔记】窗口隐藏、最小化、最大化、正常化

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  5. 在Win8&period;1&lpar;64位&rpar;系统上安装Scrapy&lpar;python 2&period;7&period;7&rpar;

    为了在win8.1上安装scrapy折腾了好久,最终安装成功,总结步骤如下: 下载安装Visual C++ 2008 redistributables 安装lxml-3.2.4.win-amd64-p ...

  6. js--事件对象的理解3

    实例2: 跟随鼠标的DIV-- <script> document.onmousemove=function (ev) { var oEvent=ev||event; var oDiv=d ...

  7. 查看eclipse ADT SDK JDK版本号

    一.查看eclipsea版本号: 启动eclipse,Help > About Eclipse SDK,在eclipse SDK对话框下面就有Eclipse SDK Version:4.2.0这 ...

  8. centos7下如何隐藏nginx的版本号

    我们在访问nginx的时候会暴露nginx的版本号,如何将这些版本号隐藏呢? 其实隐藏版本号非常简单 在nginx的配置文件中添加一个server——tokens  off:参数就可以了,下面进行操作 ...

  9. Nintex Forms Drop-Down &quot&semi;z-index&quot&semi;

    Now we’ve got the issue, that if we are working with a “Person-Column”, the drop-down where you can ...

  10. Windows Server 2012 R2 无法启用Microsoft &period;NET Framework 3&period;5 功能

    1 在新windows 2012 R2 上安装SQL 2014 ,提示需要安装 .NET Framework 3.5 2 在添加角色和功能--功能--.NET Framework 3.5,然后失败 3 ...