2013-12-09 134 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 
}