Call a "local" function within module.exports from another function in module.exports?

k00k picture k00k · May 5, 2012 · Viewed 222.8k times · Source

How do you call a function from within another function in a module.exports declaration?

app.js
var bla = require('./bla.js');
console.log(bla.bar());
bla.js
module.exports = {

  foo: function (req, res, next) {
    return ('foo');
  },

  bar: function(req, res, next) {
    this.foo();
  }

}

I'm trying to access the function foo from within the function bar, and I'm getting:

TypeError: Object # has no method 'foo'

If I change this.foo() to just foo() I get:

ReferenceError: foo is not defined

Answer

k00k picture k00k · May 5, 2012

Change this.foo() to module.exports.foo()