在node.js模块导出中使用define方法

时间:2016-04-26 16:49:12

标签: node.js methods module export

我有一个具有foobar的node.js模块。我有办法在foo内拨打bar,如:

module.exports = {
    foo: function(a, b, c) {

    },

    bar: function(a, b, c) {
        foo(); //returns 'foo is not defined'
    }
}

按原样,foo返回undefined ...有人可以帮忙吗?

提前致谢!

3 个答案:

答案 0 :(得分:1)

是的,有。只需使用this

module.exports = {
    foo: function(a, b, c) {

    },

    bar: function(a, b, c) {
        this.foo();
    }
}

我建议在处理对象时阅读this article

答案 1 :(得分:1)

@ victorkohl的回答将起作用。或者,您也可以使用闭包来避免调用this

function foo (a, b, c) {
}

function bar (a, b, c) {
    foo();
}

module.exports = {
    foo: foo,
    bar: bar
};

答案 2 :(得分:1)

只是为了它的乐趣,这也有效:

    foo(); //returns 'foo is not defined'

    module.exports.foo();

(我推荐来自@victorkohl的自包含版本。)