Node.js 开发入门(2)-fs 模块

一. 介绍

fs 模块是用于文件操作的.提供了文件的读写,更名,删除,遍历目录,等操作.fs 模块中所有操作,都提供了异步和同步的两个版本.

二. fs.readFile 读文件

fs.readFile(file[, options], callback)
fs.readFile()第一个参数,传文件名, (第二个参数: 编码类型可选, 如果不指定编码格式,得到的是二进制的 buffer 对象),第三个参数是回调函数. 一般回调函数错误处理优先.第一个参数是 error,.其他参数是其他返回的内容.如果没有错误, error 的值是 null 或是 undefined. 如果有错,返回的一般是 Error 对象.

fs.readFileSync(file[, options]) 同步的方法

三. 其他常用的函数

创建目录 fs.mkdir(path[, mode], callback)
读取目录 fs.readdir(path, callback)
删除目录 fs.rmdir(path, callback)
写文件 fs.writeFile(file, data[, options], callback)
重命名 fs.rename(oldPath, newPath, callback)
删除文件 fs.unlink(path, callback)
真实路径 fs.realpathSync(path[, cache])
获取文件信息 fs.stat(path, callback)

文档连接: https://nodejs.org/docs/latest-v5.x/api/fs.html

四. 如何改异步为同步

虽然API 给我们提供了同步的方法, 我们下面看看如何将异步的方法,转成同步执行

 // 异步转同步
    fs.readdir("./files/", (error, files) => {
        // files 是一个数组, 存放文件夹名
        // 创建一个数组
        let folder = [];
        // 迭代函数,将异步执行强制转成同步执行
        (function iterative(i){
            if(i == files.length) {
                console.log(folder);
                return;
            }
            
            fs.stat("./files/" + files[i], (error, stats)=>{
                if(stats.isDirectory()) {
                    folder.push(files[i]);
                }
                iterative(i+1);
            });
        })(0);
    });
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • https://nodejs.org/api/documentation.html 工具模块 Assert 测试 ...
    KeKeMars阅读 6,453评论 0 6
  • Node.js 常用工具 util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScr...
    FTOLsXD阅读 546评论 0 2
  • 文件系统模块是一个封装了标准的 POSIX 文件 I/O 操作的集合。通过require('fs')使用这个模块。...
    保川阅读 819评论 0 0
  • 个人入门学习用笔记、不过多作为参考依据。如有错误欢迎斧正 目录 简书好像不支持锚点、复制搜索(反正也是写给我自己看...
    kirito_song阅读 2,512评论 1 37
  • 如果你坐的车正要离去 最好关上所有的灯 黑暗中的人们低语又高谈 用前方的光勾勒一半的头影 不用瞩目流动的光斑 它们...
    夜谷阅读 155评论 0 1