Я работаю над учебным пособием по обучению, и застрял в вопросе, поэтому мне нужна ваша помощь, поскольку программное обеспечение не предоставляет достаточно подробных ответов.Ошибка обратного вызова
Я нахожусь на шаге «сделайте его модульным», который просит разделить код на модули. Мой модуль:
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()
: если (ERR) возвращение обратного вызова (ERR)FAIL
Но я использую эти линии. Что я делаю не так?
EDIT: Вызывающий модуль состоит в следующем: вар мод = требуется ('./ подмодуль');
var mod = require('./submodule');
var folder = process.argv[2];
var extension = process.argv[3];
mod(folder, extension);
Возможно, я должен был поймать ошибку или объявить ее и перейти к моду?
Ношение моей угадывающей шляпы, но будет ли полутолк в конце справки о возврате в этом случае? –
Обычно, если вы не используете фигурные скобки для структурирования своего кода, чтобы 'return' находился в той же строке, что и' if'. Возможно, это так. – Andy
Спасибо за ответы, но ни один из них не изменил результат. Я обновляю свой вопрос с помощью нового кода. –