出口问题

时间:2013-12-09 20:12:24

标签: javascript node.js

我目前正在尝试构建一系列函数。我有一个充满模块的文件夹,其中每个模块都有一个函数运行和以下行

 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类型。因为这个我无法运行这些功能。我怎样才能成功构建这个函数数组?

1 个答案:

答案 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
}