【发布时间】:2015-04-16 04:05:26
【问题描述】:
我需要将我的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 对象现在存在于构造方法中,但由于某种原因在身份验证方法中无法访问。
【问题讨论】:
-
securityHandler是使用securityHandler = new SecurityHandler()创建的对象?db是什么(这是在哪里定义/创建的)它在快速路由中没有任何标准。 -
两者都是我创建的,是的,使用“new”关键字。
-
为什么不注入
SecurityHandler构造函数securityHandler = new SecurityHandler(db),或者只需要那里...