fsを使用してディレクトリ内のファイルのリストを返すモジュールを作成しようとしています。 console.logは期待通りにファイルの配列を返しましたが、最終的に返されるオブジェクトは未定義です。誰かがこれを私に説明することはできますか?私のノードのjsモジュール関数が未定義の結果を返す
モジュール:
exports.fileList = function() {
var fs = require('fs');
var path = require('path');
var dirPath = 'C:/Users/Desktop/Hotkey'; //directory path
var files = [];
fs.readdir(dirPath, function(err,list){
if(err) throw err;
for(var i=0; i<list.length; i++){
console.log(i + ':' + list[i]); //print the file
files.push(list[i]); //store the file name into the array files
}
console.log(files); // array here is displayed correctly
});
return files; //return undefined object
}
いくつのファイルがありますか?配列が返すファイルの数はいくつですか?私たちもそれらを見せてくれますか?それはコンソールに何を記録するのですか? –
'console.log(i + ':' + list [i]);' - forループで何回印刷したのですか?また配列の値が未定義で印刷されましたか? –
少なくとも空の配列を返すべきで、 'undefined'ではありません。 –