无法识别错误回调

时间:2013-11-27 20:44:20

标签: javascript node.js

我正在学习一个学习单元教程,并且遇到了一个问题所以我希望得到你的帮助,因为该软件并没有提供足够详细的答案。

我迈出了一步"使其模块化"要求将代码分成模块。我的模块是:

module.exports = function (dir, filter, err){
    var fs = require("fs");
    var re = new RegExp('\\.' + filter + '$');

    fs.readdir(dir, function(err, list) {
        if (err) return callback(err);

        for (var i=0; i < list.length; i++) {
            var name = list[i];

            if(name.match(re))
                console.log(list[i]);
        };
    });
}

但教程说消息不正确:

  

您的附加模块文件:/home/user/learnunode/submodule.js   似乎没有传回从fs.readdir()

收到的错误      

在回调中使用以下惯用的Node.js模式   fs.readdir():if(错误)返回回调(错误)

     

FAIL

但我正在使用那些线。我做错了什么?

修改: 调用模块是这样的: var mod = require(&#39; ./ submodule&#39;);

var mod = require('./submodule');

var folder = process.argv[2];
var extension = process.argv[3];
mod(folder, extension);

也许我应该抓住错误或宣布错误并传递给mod?

1 个答案:

答案 0 :(得分:1)

callback未定义,因此您无法像函数一样调用它。我不确定正确的代码是什么,我怀疑将第一行更改为:

module.exports = function (dir, filter, callback){

将解决您的问题。