我正在使用第三方库(在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
我在这里做错了什么?
答案 0 :(得分:0)
您正在传递整个导出对象。但是你想传递属性bar
。
var bar = require('./file_b').bar;
可替换地:
var bar = require('./file_b');
exports.paths = [{
path: "foo",
parse: bar.bar
}]