我要在一堂课上讲以下内容:
router.post('/login', ctrlAuth.login);
然后ctrlAuth来自另一个类:
login(req, res) {
passport.authenticate('ldapauth', function (err, user, info) {
... // handling err and !user
...
if (user) this.processUser(req, res);
})(req, res);
}
private processUser(req, res) {...}
然后我收到TypeError:无法读取未定义的属性'processUser'
到目前为止,这是我的操作方式,但仍然无效:
login(req, res) {
const callback = ((err, user, info) => {
if (user) this.processUser(req, res);
}).bind(this);
passport.authenticate('ldapauth', {session: false}, callback)(req, res);
}
答案 0 :(得分:0)
我想到了两种解决方法:
将ctrlAuth绑定到该方法:
router.post('/login', ctrlAuth.login.bind(ctrlAuth));
创建另一个类并将其用作下一个回调:
router.post('/login', ctrlAuth.login, ctrlAuth.processUser);
在ctrAuth.login内部,我致电next();