events.js中的events.js:142错误

时间:2016-01-26 19:28:10

标签: javascript node.js frontend web-frontend

我有一个javascript文件,可以找到与参数匹配的所有目录。

我收到了这个错误:

enter image description here

我的代码:

    function getUserHome() {
        return process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'];
    }

var home_path=getUserHome();

var findit  = require('findit'),
    path    = require('path'),
    finder  = findit(path.resolve(home_path));
    var myArgs = process.argv.slice(2)[0];
    var  filter1 = new RegExp(myArgs);

    //This listens for directories found
    finder.on('directory', function (dir) {
        var directories = dir.split('\\');
        var last= directories[directories.length-1].toLowerCase();

        if(filter1.test(last)){
            console.log('Directory: ' + dir );

        }
    });

(我的代码很乱,我稍后会清理它)

如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

为什么你没有从Node中使用fs,并以递归的方式查找dirs?我认为错误应该在findit模块上......

https://nodejs.org/api/fs.html#fs_fs_readdir_path_callback上查看,或者尝试同时执行此操作的https://www.npmjs.com/package/recursive-readdir。我认为你在模块findit中使用的东西将在那里可用(比如忽略文件的方法)......

EDIT1:使用recursive-readdir的示例:

4 = {6, 10, 2, 4}

答案 1 :(得分:0)

@Moran,您可以直接在“目录”事件的回调中添加console.log吗?

finder.on('directory', function (dir) {
        // Here 
        console.log(dir);

       var directories = dir.split('\\');
        var last= directories[directories.length-1].toLowerCase();

        if(filter1.test(last)){
            console.log('Directory: ' + dir );

        }
    });

要查看哪个目录有问题?然后比较应用于此文件夹的权限和工作的目录,例如“comverse”。这将有助于找到您的错误