我正在学习一个学习单元教程,并且遇到了一个问题所以我希望得到你的帮助,因为该软件并没有提供足够详细的答案。
我迈出了一步"使其模块化"要求将代码分成模块。我的模块是:
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?
答案 0 :(得分:1)
callback
未定义,因此您无法像函数一样调用它。我不确定正确的代码是什么,我怀疑将第一行更改为:
module.exports = function (dir, filter, callback){
将解决您的问题。