TEL:400-8793-956
当前位置:程序、服务器

Node.js-如何在几个路由器中使用创建的对象?

提问者: 近期获赞: 浏览人数: 发布时间:2021-03-02 12:50:47

 问:我尝试将其绑定到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路由器上访问它的断开连接功能。
上一篇: 无法同步Gradle项目“有趣的事实”-无法找到Build Tools版本19.1.0
下一篇: TypeError:无法将int对象隐式转换为字符串对象