2016-03-02 122 views
0

我使用PHP开发web系统,现在我对NODEJS非常兴奋。将php迁移到nodejs - 在客户端处理会话

即使它是不是一个好的做法,在我看来,很多次做到这一点:

如果用户没有登录,他们重定向。

<?php 

    session_start(); 

    if(!isset($_SESSION['login']) || 4 !== (integer)$_SESSION['id_perfil_sistema']){ 
     header("Location: /vault/"); 
    } 

?> 

其他时间我得到的会话数据根据登录的用户

<li style="background-color:#ddd;"> <a style="color:blue;" href="#"> <?php echo ucwords($_SESSION['nomeusuario']); ?> </a> </li>

<input type="hidden" name="theOrigin" value="<?=$_SESSION['origin'];?>" /> 

<script type="text/javascript"> 
    var x = <?php echo $_SESSION['session_variable']; ?>; 
</script> 

我已经学会了对的NodeJS创建会话定制页面。 =)

在javascript中获取会话nodejs的最佳方式是什么?

我正在使用nodejs和express。

亲切的问候

+0

这样做帮助呢? – OllieH

回答

2

你应该能够从任何请求对象获取会话,一旦你已经包括了Express会话中间件(https://github.com/expressjs/session

例如重定向所有非登录用户为“/登录”,可以写为快递中间件上这样每个请求:

app.use(function(req, res, next) { 
    if(!req.session.login){ 
     res.redirect("/login"); 
     return; 
    } 
    next(); 
}); 

和添加会话来标记(假定使用玉或其它明示模板中间件)

JS

app.get('/', function (req, res) { 
    res.render('index', { nomeusuario: req.session.nomeusuario }); 
}); 

玉(例如)

html 
    body 
    h1= nomeusuario 

注:代码没有测试,只是一个例子

+0

很好的答案,@Ollieh! @ felipe-muner,我建议你使用模板化的代码:代码可读性,编码效率,孩子到父母的布局使用(你可以在扩展器中定义布局填充)和[更多](http://vstark.net/2014/10/18 /玉-VS-HTML /)。 A plus:您可以使用[config package](https://www.npmjs.com/package/config)定义资源路径(使用CDN?使用它!)和一般应用程序配置。 –