tmp
3つのテスト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'
渡します。path
fs.readdirSync(path)
files
process.cwd();
ブロック内をチェックするif
と、REPLコンソールのチェックと一致します。
REPLで手動で実行したが、自動化されていない場合に、なぜそれが機能するのかを理解しようとしています。