我有一个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 );
}
});
(我的代码很乱,我稍后会清理它)
如何解决这个问题?
答案 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”。这将有助于找到您的错误