在ExpressJS http(GET,POST等)函数回调中获取对象上下文

时间:2014-01-02 22:43:08

标签: node.js express

我正在创建一个模块,我需要做一些像bellow

这样的事情
//myModule.js

var myModuleWrapper = function(){

  return {
     counter : 0,
     countIt: function( req, res, next ){
        this.counter++; // here i got ReferenceError: counter is not defined at countIt
        res.end(this.counter);
     }
  }
}

module.exports = function(){
  return new MyModuleWrapper();
}

//app.js
var myModule = require(./myModule.js);
app.get('/', mymodule.countIt);

如何在上面代码的注释行中获取返回对象的上下文?提前谢谢

1 个答案:

答案 0 :(得分:1)

在回调函数上使用bind方法。

app.get('/', mymodule.countIt);更改为:

app.get('/', mymodule.countIt.bind(mymodule));