2017-03-24 69 views
0

在我models文件夾我有很多類似的文件..我可以從FS中導出模塊嗎?

// Account.js 
module.exports = mongoose.model('Account', AccountSchema) 
... 
// Rules.js 
module.exports = mongoose.model('Rules', RulesSchema) 

在我index.js文件(同一文件夾./models)。 原因是查找在./models導出文件夾中的所有文件,併爲名爲出口

// index.js 
const mathJSFiles = /^[^index].*\.js$/gmi; 
fs.readdirSync('.') 
    .filter(file => file.search(mathJSFiles) >= 0) 
    .forEach(file => { 
    file = path.basename(file, '.js') 
    exports[file] = require(join(models, file)) 
    }) 

因此,在另一個文件main.js想做這樣...

import * as Models from './models' 
Models.Account 

或者

import { Account } from './models' 

這可能嗎?

+0

什麼是'* as'?你只是將ES6與Commonjs模塊混合?其實它應該與一個簡單的'const models = require('./ models')' – Bergi

+0

是的,對不起。我改變了我的答案。 – ridermansb

回答

0

我會建議做一些這樣的:

// main.js 
var glob = require('glob') 
    , path = require('path'); 

glob.sync('./models/**/*.js').forEach(function(file) { 
    require(path.resolve(file)); 
}); 
相關問題