问:我尝试将其绑定到request.session或request.user,但是有相同的错误-'undefined function'。如果我直接通过url(localhost:3000 / start和localhost:3000 / stop)访问它们,如何在/ stop路由器的/ start路由器中使用创建的req.session.idle = new SteamIdle('user','pass') )?
router.get('/ start',checkAuth,function(req,res,next){
res.setHeader(“ Content-Type”,“ application / json”);
var data = {
statusCode:1,
状态:“已连接”
};
if(typeof req.session.idle ==“ undefined”)
req.session.idle = new SteamIdle('user','pass'); //创建实例
if(!req.session.idle.isLogin){
req.session.idle.connect();
// req.session.idle.disconnect();这将在这里工作,但不适用于/ stop路由器
}
res.send(data);
});
router.get('/ stop',checkAuth,function(req,res,next){
res.setHeader(“ Content-Type”,“
状态:“完成”
};
如果(typeof req.session.idle!=“ undefined”){
req.session.idle.disconnect(); //未定义的函数,有什么方法可以使它起作用?
删除req.session.idle;
}
res.send(data);
});
SteamIdle
函数SteamIdle(user,pass){
var self = this;
self.userName =用户;
self.password =通过;
//主函数
self.disconnect = function(){
console.log('disconnect');
}
self.connect = function(auth){
console.log('开始为用户工作'+ self.userName);
}
}
module.exports = SteamIdle;
答:我找到了解决方案。我对nodejs使用express框架。在Express API中-我发现具有全局范围的app.locals属性。所以我创建了req.app.idle = new SteamIdle('user','pass')对象,并可以在/ stop路由器上访问它的断开连接功能。