events.js:node.js中有142个错误

我有一个文件,在JavaScript中,find所有匹配参数的目录。

我得到这个错误:

在这里输入图像描述

我的代码:

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

(我的代码是一团糟,以后我会清理它)

如何解决这个问题?

为什么你没有从节点使用fs,并recursion查找dirs? 我认为错误应该在findit模块上…

看看https://nodejs.org/api/fs.html#fs_fs_readdir_path_callback或者试试https://www.npmjs.com/package/recursive-readdir也可以。 我认为你从模块中使用的东西可以在那里find(比如忽略文件的方法)…

编辑1:使用recursive-readdir的示例:

 var recursive = require('recursive-readdir'); var filter1 = new RegExp(myArgs); function ignoreFunc(file, stats) { return !(stats.isDirectory() && filter1.test(path.basename(file))); } recursive('directory', [ignoreFunc] ,function (err, files) { // Files is an array of filename (only the ones that matched the condition) console.log(files); }); 

@Moran,你能直接在你的“目录”事件的callback中添加一个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”。 这将有助于find你的错误