2014-11-06 65 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