2013-12-09 99 views
0

我目前正在尝试构建一个函数数组。我有一个完整的模块的文件夹中,其中每个模块具有这样的功能的运行和下面的行导出问题

exports.run = run; 
var run = function(db){ 
    // Run some code 
} 

我然后有一个文件I在节点调用哪个执行以下操作:

require("fs").readdirSync("./channels").forEach(function(file) { 
    var func = require("./channels/" + file); 
    channels.push(func); 
    console.log("Adding " + file); 
    console.log(channels); 
}); 

函数上述成功在每个文件中添加undefined类型。因为这个,我无法运行这些功能。我怎样才能成功构建这个函数的数组?

回答

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 
}