2017-12-05 17 views
0

nodejs를 사용하여 세션을 구현하려고합니다. 그러나 세션에서 여러 요청을 처리 할 수 ​​없습니다.
예 :
user1이 로그인하면 데이터가로드됩니다.
user2가 로그인하면 user1 데이터가 user2로 덮어 쓰게됩니다.
그래서 user1 페이지를 새로 고치면 user2 데이터가 다시로드됩니다. 당신이 sessionObj = req.session 당신이 전역 변수를 작성하고 모든 사용자에 재 할당하는 작업을 수행nodejs 응용 프로그램에서 여러 세션 요청을 덮어 쓰는 중

var session = require('express-session'); 

app.use(session({ 
secret: "secterd13", 
resave: false, 
saveUninitialized: true, 
cookie: { secure: true } 
})); 

//Set the session data in login page. 
sessionObj = req.session; 
sessionObj.Location = "Location1"; 

//Get in dashboard. 

console.log(sessionObj.Location); 

답변

0

. 서버에 마지막으로 연결 한 사용자는 항상 이것을 덮어 씁니다. 세션 데이터를 템플릿 엔진에 전달하려는 경우 'res.render ('view ', {session : req.session}) simply and the session variable will be available in your template. Or you can set the session as global using res.locals.myVariable = req.session and myVariable을 사용할 수 있습니다. 귀하의 템플릿.

+0

감사 franckstifler :

여기 내 솔루션입니다. 그러나 "myVariable"변수를 사용하는 방법은 여전히 ​​이해할 수 없습니다. 이것을 구현하는 방법에 대한 몇 가지 샘플 예를 들려 주시겠습니까? 네가 할 수 있다면 그것은 큰 도움이 될 것이다. –

0

동일한 문제가 발생하여이를 해결하기 위해 req.session을 사용했습니다.

각 요청에 대해 서버에 도착하면 unique_id이 할당되었습니다. 그것은 나를 위해 성공적으로 일했습니다.

var user_count = 0; 

/*********** Authentication request ***********/ 
var handleAuthRequest = function(req, res) {  
    var unique_id = ++user_count; 
    /********* setting unique id to each request session *********/ 
    req.session.unique_id = unique_id; 
    res.redirect("/user/db_op"); 
} 

app.get("/home/get_data", handleAuthRequest);