如何在nodejs中访问prototype方法中的this.property类

时间:2013-05-01 09:21:29

标签: node.js

这是我想要做的。我正在nodejs express中编写一个应用程序,并尝试在不同的模块中划分应用程序的不同部分。我在中间件函数中访问此变量有一些问题

以下是我的路线模块

"use strict";
function route(params){
  var app = params.app;
  var ApiHelper = require('../library/apiHelper').init(params);
  //get
  app.get('/', Api.index);
  app.get('/check', ApiHelper.validateRequest, Api.check);
}
module.exports = route;

我的ApiHelper课程

"use strict";
function ApiHelper(params){
  this.params = params;
}
module.exports.init = function (params){
  return new ApiHelper(params);
};
ApiHelper.prototype.validateRequest = function validateRequest(req, res, next){
  console.log(this.params);//this is undefined
};

我无法访问ApiHelper的validateRequest对象中的this.params

1 个答案:

答案 0 :(得分:0)

通过仅传递validateRequest方法,您将失去绑定。你可以像这样重新绑定它:

app.get('/check', ApiHelper.validateRequest.bind(ApiHelper), Api.check);