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

你可能感兴趣的:(Node.js 开发入门(2)-fs 模块)