tmp3つのテストnode.jsモジュールがあるディレクトリがあります[mod0.js, mod1.js, mod2.js]。
これらの3つのモジュールを配列にインポートして、その配列を返すための関数を作成しようとしています。REPLにドロップして、etcを使用して各ファイルをvar x = require("./tmp/mod0");問題なくインポートできます。
これを自動化するために次の関数を実行しようとすると、エラーが発生します[Error: Cannot fine module './tmp/mod0']。
var _importFiles = function(path, files){
var moduleList = []
, trimmedName;
files.forEach(function (element, index, array){
if (_fs.lstatSync(path + "/" + element).isFile()){
trimmedName = element.substring(0, (element.length - 3));
moduleList.push(require("./" + path + "/" + trimmedName));
}
});
return moduleList;
};
パラメータとパラメータの出力を'tmp'渡します。pathfs.readdirSync(path)files
process.cwd();ブロック内をチェックするifと、REPLコンソールのチェックと一致します。
REPLで手動で実行したが、自動化されていない場合に、なぜそれが機能するのかを理解しようとしています。