TypeError传递一个commonjs' required'函数成为Javascript对象

时间:2015-07-23 09:46:53

标签: javascript commonjs

我正在使用第三方库(在node.js中),它通过Javascript对象接受函数作为参数:

  exports.paths = [
  {
    path:  "foo",
    parse: function bar(parm) {
        console.log("running function");
        return;
    }
  }

如果函数是内联的,那么它可以正常工作,但我想将它删除到单独的文件file_b

function bar(parm) {
  console.log("running function");
  return;
}
exports.bar = bar;

然后在file_a

中要求它
var bar = require('./file_b');
exports.paths = [
  {
    path:  "foo",
    parse: bar
  }

现在,当第三方库尝试运行我的函数时,会出现错误:TypeError: object is not a function

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

您正在传递整个导出对象。但是你想传递属性bar

var bar = require('./file_b').bar;

可替换地:

var bar = require('./file_b');
exports.paths = [{
    path:  "foo",
    parse: bar.bar
}]