• Как в node js получить список js файлов в папке и подпапках?

    Staltec
    @Staltec
    Node.js разработчик
    Асинхронно (и последовательно) это выглядит чуток веселее:

    var path = require('path');
    var fs = require('fs');
    var async = require('async');
    
    
    function getFiles (dirPath, callback) {
    
        fs.readdir(dirPath, function (err, files) {
            if (err) return callback(err);
    
            var filePaths = [];
            async.eachSeries(files, function (fileName, eachCallback) {
                var filePath = path.join(dirPath, fileName);
    
                fs.stat(filePath, function (err, stat) {
                    if (err) return eachCallback(err);
    
                    if (stat.isDirectory()) {
                        getFiles(filePath, function (err, subDirFiles) {
                            if (err) return eachCallback(err);
    
                            filePaths = filePaths.concat(subDirFiles);
                            eachCallback(null);
                        });
    
                    } else {
                        if (stat.isFile() && /\.js$/.test(filePath)) {
                            filePaths.push(filePath);
                        }
    
                        eachCallback(null);
                    }
                });
            }, function (err) {
                callback(err, filePaths);
            });
    
        });
    }
    
    
    getFiles('./', function (err, files) {
        console.log(err || files);
    });


    UPD: Добавил проверку расширения файла чтобы в список попадали только *.js файлы
    Ответ написан
    Комментировать