2017-03-24 2 views
0

Dans mon modelsdossier J'ai beaucoup de fichiers comme ..Puis-je exporter des modules de FS?

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

Et dans mon dossier index.js (même dossier./models). La raison est de rechercher tous les fichiers dans le dossier ./models et l'exportation comme l'exportation du nom

// 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)) 
    }) 

Donc, dans un autre fichier main.js je veux faire comme ça ...

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

Ou

import { Account } from './models' 

C'est possible?

+0

Qu'est-ce '* as'? Etes-vous juste en train de mixer ES6 avec des modules Commonjs? En fait, il devrait fonctionner avec une plaine 'const models = require ('./ models')' – Bergi

+0

Oui, désolé. Je change ma réponse. – ridermansb

Répondre

0

Je recommande de faire quelque chose comme ce qui suit:

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

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