javascript - events.js :142 error in node. js

标签 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 );

        }
    });

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

如何解决这个问题?

最佳答案

为什么你不使用 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/

相关文章:

javascript - 从 JSON 读取数据,对其进行操作并将其写回到 NodeJs 中

javascript - 使用全日历在内容窗口上保持弹出窗口打开

javascript - 在 div 中垂直滚动多个背景图像以及文本

node.js - node-mysql无法处理多个查询?

javascript - Switch 语句仅执行 Case 1-Javascript

javascript - js库下载完成后如何执行javascript函数?

html - Bootstrap 网格输出与预期不同

php - 通过 Javascript 中的变量按名称访问 PHP 生成的单选按钮

javascript - Meteor JS,在调试器中运行?

javascript - 使用 node.js 的 Socket.io 根本没有表达?