我需要将我的db
对象注入到securityHandler
对象中,但似乎无法解决该问题。
在securityHandler.authenticate
方法中,我想访问所有内容:db
,request
和response
。
我已经试过了:
app.post('/api/login', securityHandler.authenticate(request, response, db) );
和
SecurityHandler.prototype.authenticate = function authenticate(request, response, db) {};
编辑:
nane建议将db对象传递给SecurityHandler的构造函数:
var security = new SecurityHandler(db);
SecurityHandler本身看起来像这样:
function SecurityHandler(db) {
console.log(db); // Defined
this.db = db;
}
SecurityHandler.prototype.authenticate = function authenticate(request, response, next) {
console.log(this.db); // Undefined
};
现在,该db对象存在于构造方法中,但由于某些原因在authenticate方法中不可访问。
最佳答案
securityHandler.authenticate(request, response, db)
会立即调用authenticate
,因为您会将authenticate
调用的结果作为回调传递给app.post('/api/login', /*...*/)
。
您需要这样做:
app.post('/api/login', function(request, response) {
securityHandler.authenticate(request, response, db) );
});
关于node.js - 依赖注入(inject)快速路由,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28527984/