Nodejs:运行 任意模块中的函数?
Nodejs: Run a function in an arbitrary module?
假设我有一个包含 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 is not a function"
您需要从每个模块导出 setup()
。
a-module.js
var obj = {};
obj.setup = function(){
// doStuff
}
module.exports = obj
假设我有一个包含 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 is not a function"
您需要从每个模块导出 setup()
。
a-module.js
var obj = {};
obj.setup = function(){
// doStuff
}
module.exports = obj