2016-11-23 79 views

回答

0

也许您可以将参数发送到重定向页面,并在该页面上评估该参数是否存在以显示相应的警报:

app.get('/logout', function (req, res) { 
    delete req.session.auth; 
    res.status(200).redirect('/?msg=session%20destroyed'); 
}); 
在“/”逻辑

,你可以这样做:

app.get('/', function(req, res) { 

    var message; 

    if(req.query.msg){ 
    message = req.query.msg; 
    } 

    // other logic here... 

    res.send(message); // or res.render('index', { msg: message, //other properties... 
    }); 
} 

这取决于你所使用的视图引擎,您可能适应。

另一个选项,不是重定向,而是在服务器中通过ajax发送注销请求,并在销毁会话后以“ok”或“1”状态响应。然后,评估ajax响应,以便在同一页面中显示警报,并在前端实现所有相应的逻辑(如清除所有表单,只有当活动会话存在时才显示的信息等)。

快递:

app.get('/logout', function (req, res) { 
    delete req.session.auth; 
    res.status(200).send('1'); 
}); 

在前面(假设你使用jQuery):

$.get('/logout', function(response){ 
    if(response == '1'){ 
    alert('Successfully logged out!'); 
    // Destroy DOM objects that should not be still available. 
    } 
}); 

这取决于什么是更容易为你acomplish,在自己的网页和逻辑要求。

+0

你能解释一下吗? – Aniket

+0

用代码示例编辑我的答案。希望它使它更易于理解。 – adonike

0

这取决于你使用什么软件包。你没有说明,所以我会给我的两分钱用EJS方法 如果你使用connect-flash它的那样简单:

app.get('/logout', function(req, res) { 
     delete req.session.auth; 
     req.flash('message', 'YourMessageHere') 
     res.redirect('/login'); 
}); 

然后当你渲染它检查这样的变量:

<div> 
    <%if(message){%> 
     <%= message%> 
    <% } %> 
</div> 

或者你可以渲染页面,并沿作为JSON对象传递数据:

app.get('/logout', function(req, res) { 
      delete req.session.auth; 
      res.render('./link/to/html/file', {message: 'Your Message here'}); 
    }); 

又在HTML检查的变量传递。 看看res对象,看看它的能力以及你使用的外观,看看数据如何被解释。

+0

我使用快递框架 – Aniket

+0

什么视图引擎? –