0
私はファイルリストを印刷するためにモジュールファイルを必要とするlearnyounodeの第6の問題を解決しようとしています。learnyounodeを渡すことができません:不正に使用されたコールバック関数ですか?
メインファイルprogram.js
:
var mymodule = require('./module.js');
mymodule(process.argv[2], process.argv[3], function(err, file){
if(err){
console.log(err);
return;
}
console.log(file);
});
モジュールファイルmodule.js
:ここでは私の二つのファイルです
var fs = require('fs');
var path = require('path');
var fileExt;
module.exports = function(dir, ext, callback) {
fs.readdir(dir, function(err, files){
if(err){
callback(err);
return;
}
files.forEach(function(file){
fileExt = path.extname(file).substring(1);
if(fileExt === ext){
callback(null, file);
}
});
});
}
は、しかし、それはエラーがスローされます。
processors[i].call(self, mode, function (err, pass) {
TypeError: Cannot read property 'call' of undefined
私は何間違っている?
いいえ、ありがとうLarkin – shintaroid
ところで、learnyounodeを離しておくと、実際に私の質問のようにnode.jsを使用できますか?または通常、コールバック関数は1回だけ呼び出されるべきですか? – shintaroid
コールバックは一度しか呼び出されないのが普通です。これは、 'err、callback'パターンを使用したとき、ほとんどのNode開発者が期待するものだと思います。 –