无法识别错误回调

Error callback not recognized

本文关键字:回调 错误 识别      更新时间:2023-11-08

我正在编写一个learnunode教程,遇到了一个问题,所以我希望你能帮忙,因为软件没有提供足够详细的答案。

我正在进行一个"使其模块化"的步骤,要求将代码分离为模块。我的模块是:

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/summodule.js似乎没有传回从fs.readdir() 接收到的错误

在回调中使用以下惯用的Node.js模式fs.readdir():if(err)return callback(err

失败

但我在用那些台词。我做错了什么?

编辑:调用模块是这样的:var mod=require('./submodule');

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

也许我应该发现错误,或者声明错误并传递给国防部?

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

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

将解决您的问题。