我有一个用 javascript 编写的文件,它可以查找与参数匹配的所有目录。
我得到了这个错误:
我的代码:
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 );
}
});
(我的代码很乱,稍后我会清理它)
如何解决这个问题?
最佳答案
为什么你不使用 Node 中的 fs,并递归地查找目录?我认为错误应该出在 findit 模块上......
看看https://nodejs.org/api/fs.html#fs_fs_readdir_path_callback或者尝试使用 https://www.npmjs.com/package/recursive-readdir这也能做到。我认为您从 findit 模块中使用的东西将在那里可用(例如忽略文件的方法)...
EDIT1:使用 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);
});
关于javascript - events.js :142 error in node. js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35022230/