这是我想要做的。我正在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
答案 0 :(得分:0)
通过仅传递validateRequest
方法,您将失去绑定。你可以像这样重新绑定它:
app.get('/check', ApiHelper.validateRequest.bind(ApiHelper), Api.check);