2017-07-08 12 views
0
MyApp 
├── main.js 
└── modules 
    ├── a.js 
    ├── b.js 
    ├── c.js 
    ├── d.js 
    ├── e.js 

NodeJSアプリケーションでは、main.jsファイル内のすべてのカスタムモジュール(a、b、c、d、e)を一度にどのようにインポートできますか?ディレクトリからすべてのモジュールを一度にインポートする[NODE]

私は長いモジュールリストを持っており、それらをすべて別々にインポートしたくありません。

答えて

0

modules/フォルダにindex.jsを作成します。

const a = require('./a') 
const b = require('./b') 
const c = require('./c') 
const d = require('./d') 
const e = require('./e') 

module.exports = { 
    a, 
    b, 
    c, 
    d, 
    e 
} 

をそれからちょうどmain.jsにモジュールをインポートします。

const modules = require('./modules') 
modules.a 

代わりにあなたがループディレクトリを通して、動的には、各モジュールをインポートすることができます。

0
const path = require('path'); 
const fs = require('fs'); 

const modulesPath = './modules'; 
const modulesList = fs.readdirSync(modulesPath); 
modulesList.forEach(modulePath => require(path.resolve(modulesPath, modulePath))); 
1

各モジュールを動的にインポートできます。あなたは、ディレクトリ

var allModules = {}; 
require('fs').readdirSync(__dirname + '/modules/').forEach(function(file) { 
    if (file.match(/\.js$/) !== null && file !== 'index.js') { 
    var name = file.replace('.js', ''); 
    allModules[name] = require('./modules/' + file); 
    } 
}); 
// allModules.a(params) 

か、この場合のためにrequire-dir

var requireDir = require('require-dir'); 
var modulesPackage = requireDir('./modules'); 
// modulesPackage contains 
//{ 
// a: require("./modules/a"), 
// b: require("./modules/b") 
//} 

このライブラリを使用することができます内のすべてのモジュールをインポートするには、手動の方法を使用することができ

const fs = require('fs'); 
 

 
fs 
 
    .readdirSync(`${__dirname}/modules`) 
 
    .filter(file => (file.slice(-3) === '.js')) 
 
    .forEach((file) => { 
 
    require(`./modules/${file}`) 
 
    });

0

lib hava a tip:同じdを()にしたいならディレクトリを複数の場所に配置する場合は、ディレクトリ自体で行うことができます。

あなたはモジュールにパッケージを使用したい
module.exports = require('require-dir')(); // defaults to '.' 

var mds = require('./modules'); 
// mds.a(params) ..... 
ただ、以下でindex.jsファイルを作ります
関連する問題