我目前正在尝试构建一系列函数。我有一个充满模块的文件夹,其中每个模块都有一个函数运行和以下行
exports.run = run;
var run = function(db){
// Run some code
}
然后我在节点中调用了一个文件,它执行以下操作:
require("fs").readdirSync("./channels").forEach(function(file) {
var func = require("./channels/" + file);
channels.push(func);
console.log("Adding " + file);
console.log(channels);
});
上面的函数在每个文件中成功添加了undefined类型。因为这个我无法运行这些功能。我怎样才能成功构建这个函数数组?
答案 0 :(得分:4)
您的代码无法按预期运行的原因是variable hoisting in JavaScript。
var run = function(db){
// Run some code
}
exports.run = run;
如果您不想将exports
行推到功能的底部,那么您必须将run
声明为独立功能,而不是将其分配给变量
exports.run = run;
function run(db){
// Run some code
}