我可以从FS导出模块吗?

时间:2017-03-24 01:21:07

标签: javascript node.js systemjs commonjs

在我的models 文件夹中,我有很多文件,比如..

// 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'

这可能吗?

1 个答案:

答案 0 :(得分:0)

我建议做以下事情:

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

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