2017-12-11 17 views
0

nodejs 기반 web-app에 로그인 기능을 구현하려고합니다. NodeJS 세션에 문제가 발생했습니다.

const express = require('express'); 
const app = express(); 
const route = express.router; 
const sessions = require("client-sessions"); 

app.use(sessions({ 
    coockieName: 'SNsession', 
    secret: '0GBlJZ9EKBt2Zbi2flRPvztczCewBxXK' // set this to a long random string! 
})); 

const user = 'john'; 

app.get('/login', function (req, res){ 
    req.sessions.user = user; 
}); 

const port = process.env.PORT || 5000; 
app.listen(port, function() { 
    console.log("listening on " + port); 
}); 

app.get('/', function (req, res) { 
    res.send('index'); 
}); 

나는 나뿐만 아니라 내 컴퓨터에서 발생하는 모질라 해킹의 블로그에서 본 정확히 같은 결과를보고 싶어요. 블로그 게시물 : 그럼에도 불구 https://hacks.mozilla.org/2012/12/using-secure-client-side-sessions-to-build-simple-and-scalable-node-js-applications-a-node-js-holiday-season-part-3/

, 나는이납니다 :

TypeError: Cannot set property 'user' of undefined 
    at c:\node\test\server.js:15:21 
    at Layer.handle [as handle_request] (c:\node\node_modules\express\lib\router\layer.js:95:5) 
    at next (c:\node\node_modules\express\lib\router\route.js:137:13) 
    at Route.dispatch (c:\node\node_modules\express\lib\router\route.js:112:3) 
    at Layer.handle [as handle_request] (c:\node\node_modules\express\lib\router\layer.js:95:5) 
    at c:\node\node_modules\express\lib\router\index.js:281:22 
    at Function.process_params (c:\node\node_modules\express\lib\router\index.js:335:12) 
    at next (c:\node\node_modules\express\lib\router\index.js:275:10) 
    at clientSession (c:\node\node_modules\client-sessions\lib\client-sessions.js:630:5) 
    at Layer.handle [as handle_request] (c:\node\node_modules\express\lib\router\layer.js:95:5) 

내가 시간과 시간이를 알아 내기 위해 노력했지만 나는 아직 작동 보았다 수 있습니다.

블로그에있는 코드를 수정하지 않고 복사하여 붙여 넣었습니다. 제대로 작동하지 않습니다. :(

답변

0

마지막의 '세션

에서 제거

req.session.user = user; 

으로

req.sessions.user = user; 

를 교체 도와주세요