Nodejs:在任意模块中运行一个函数?

时间:2015-01-14 21:53:06

标签: javascript node.js connect

我们说我有一个充满javascript文件的目录:

.
+-- 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()
});

但是这不能访问该函数,返回" undefined不是函数"

1 个答案:

答案 0 :(得分:1)

您需要从每个模块中导出setup()

A-module.js

var obj = {};

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

module.exports = obj