从nodejs重定向到Angular ui路由

时间:2018-11-03 14:11:40

标签: angularjs node.js express angular-ui-router response.redirect

我想直接从nodejs访问angular ui路由 我在ui路由器中设置了以下状态

app.js

.state('video', {
    url: '/video/:patientId',
    templateUrl: 'app/modules/patient/views/video.html'              
})

我是tryig,可以直接从节点控制器访问它

app.controller.js

var token = '';
 router.use('/', function (req, res, next) 
 {   
    if(req.query.token!==undefined && req.session.token==undefined){
       var returnUrl = '/app/#/video/'+req.query.token;
       token=req.query.token;
       return res.redirect(returnUrl);              
    }

    if(req.session.token==undefined && token ==''){
      return res.redirect('/index.html');   
    }    
    next();
});

// serve angular app files from the '/app' route
router.use('/', express.static('app'));

但是我无法访问它,两次重定向到“ / app”并加载index.html

在服务器中,我具有以下配置,

      // routes
       app.use('/login', require('./controllers/login.controller'));
       app.use('/app', require('./controllers/app.controller'));

     // make '/app' default route
       app.get('/', function (req, res) {
                return res.redirect('/app');
       });

在上述配置中,如果我用url击中

http://localhost:8181/app/#/video/rserser”我这样重定向

http://localhost:8181/index.html/video/rserser

但想直接在此URL上访问ui路由 “ http://localhost:8181/app/#/video/rserser”。

我无法直接访问它,因此尝试使用以下网址通过上述配置进行访问 “ http://localhost:8181/app/video?token=test” 在此之后,我确实被重定向到所需状态, 但是如果我点击网址

http://localhost:8181

它不是重定向到index.html,而是重定向到angulars默认路由,因为在重定向到angulars路由后,我无法在节点控制器中重置var令牌。

0 个答案:

没有答案