Node.js报错TypeError: Cannot read property 'isDirectory' of undefined

本文介绍了一个使用Node.js处理文件系统的过程,具体来说是通过递归方式检查指定目录下所有文件,并筛选出子目录进行后续操作的方法。文章详细展示了如何利用Node.js内置的fs模块读取文件夹并判断其是否为目录。

截图如下:

原因如下:记住"./uploads" 后要加一个/

 fs.stat("./uploads/" + files[i], function(err, stats) {

 

解决:

var fs = require("fs");

exports.getAllAlbums = function(callback) {

    // 找到所有文件夹
    fs.readdir("./uploads", function(err,files) {
        if (err) {
            callback("没有找到uploads文件夹", null);
        }
        var allAlbums = [];
        (function iterator(i) {
            if (i == files.length) {
                console.log(allAlbums);
                // return allAlbums;
                callback(null,allAlbums);
                return;
            }
            fs.stat("./uploads/" + files[i], function(err, stats) {
                if (err) {
                    callback("找不到文件"+files[i], null);
                }
                console.log(stats);
                if (stats.isDirectory()) {
                    allAlbums.push(files[i]);
                }
                iterator(i + 1);
            });
        })(0);
    });
    // return ["小猫", "小狗"];
}

 

转载于:https://www.cnblogs.com/pengsi/p/7966175.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值