2014-11-06 80 views
0

对于newby问题感到抱歉,但您能否向我解释如何在nodeJS中使用会话。我在互联网上阅读了很多文章,但是我没有成功地为我的目的实现一些东西(数据正在保存会话,但每个新的请求会话都是空的),你可以从一开始就举例说明如何初始化以及如何使用。nodejs中的会话

目的:当用户在系统中登录时,我需要为他打开会话,他将在未来发送的每个请求都需要检查他的会话是否存在?

我使用express 4.x.我这样做:

// init session 
app.use(cookieParser()); 
app.use(session({ 
    secret : "yepiMobileSession", 
    resave : true, 
    key : "session", 
    store: mongooseSession(daoService.mongoose), 
    saveUninitialized : true 
})); 


// save user to the session 
request.session[CONST.SESSION_USER] = user; 

// Check login 
function checkLogin(id){ 
     var user = request.session[CONST.SESSION_USER]; 
     if (user && request.params.clientData && user._id == id){ 
      return true; 
     } else { 
      return false; 
     } 
    } 

回答

2

你可以看看下面的代码。我认为这会帮助你。

var app = require('express')(), 
 
    expressSession = require('express-session'), 
 
    cookieParser = require('cookie-parser'); 
 

 
app.use(cookieParser()); 
 
app.use(expressSession({ 
 
    secret: 'mYsEcReTkEy', 
 
    resave: true, 
 
    saveUninitialized: true 
 
}));// I haven't used the session store 
 

 
//setting session 
 

 
app.post('/login', function(req,res){ 
 
    var id=12345; 
 
    req.session.userId = id; 
 
    res.send(200); 
 
}); 
 

 
//getting session 
 

 
app.get('/hello', function(req,res){ 
 
    var id=req.session.userId; 
 
    console.log("Hello",id); 
 
    res.send(200); 
 
});

但节点服务器和客户端必须在同一个域。

+0

谢谢,这帮了我 – Simcha 2014-11-06 12:04:38