0

これが私がやろうとしていることです。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 にアクセスできません

4

1 に答える 1

0

validateRequestメソッドのみを渡すと、バインディングが失われます。次のように再バインドできます。

app.get('/check', ApiHelper.validateRequest.bind(ApiHelper), Api.check);
于 2013-05-01T10:29:13.643 に答える