2015-01-14 2 views
0

Скажем, у меня есть каталог, полный файлов JavaScript:Nodejs: Запустить функцию в произвольном модуле?

. 
+-- my_dir 
    +-- apple.js 
    +-- banana.js 
+-- main.js 

И каждый файл в подкаталог содержит функцию под названием setup().

Как я могу перебирать все файлы и выполнять эту функцию?

Это, насколько я получил:

var fruit = {} 
var normalizedPath = require("path").join(__dirname, "fruit"); 

require("fs").readdirSync(normalizedPath).forEach(function(file) { 
    filename = file.split(".")[0] //remove the file extension 
    algorithms[filename] = require("./fruit/" + file); //load the file 
    //run the setup function in it 
    algorithms[filename].setup() 
}); 

Но это не может получить доступ к функции, возвращая «неопределенные не является функцией»

+0

Вы экспорт 'настройки()' от каждого из модулей? –

+0

Это исправлено! Ошибка школьника: D – LittleBobbyTables

+0

Придется принять, как только срок уйдет – LittleBobbyTables

ответ

1

Вы должны экспортировать setup() от каждого из ваши модули.

а-module.js

var obj = {}; 

obj.setup = function(){ 
    // doStuff 
} 

module.exports = obj 
+1

Или просто 'export.setup = function() {console.log ('hello world'); }; ' – mscdex

Смежные вопросы