4

node js と express 4 の express-session に問題があります。routes/index.js 内にセッション変数を設定しましたが、app.js では使用できません。しかし、別のルート ファイル users.js で使用できます。

ルート/index.js

var sess;
router.get('/setsession',function(req,res){
    sess=req.session;
    sess.username="safeer"; 
    res.send("hi "+sess.username);
});

router.get('/getsession',function(req,res){
    sess=req.session;
    res.send("hi "+sess.username); //here session value available
});

ルート/users.js

var sess;
router.get('/session3',function(req,res){
    sess=req.session;
    res.send("hi "+sess.username); // here also session is available
});

app.js

var session = require('express-session');
app.use(session({secret: 'secret',saveUninitialized: true,resave: true}));

var sess;
app.get('/session1',function(req,res){
    sess=req.session;
    res.send("hi "+sess.username); //here session is undefined
});
app.use('/', routes);
app.use('/users', users);

誰でも解決策を教えてください。?

4

1 に答える 1

2

セッションでユーザー名を設定することをお勧めします:

routes/index.js 内

router.get('/setsession',function(req,res){
       req.session.username="safeer"; 
       res.send("hi "+ req.session.username);
});

そして app.js で

app.get('/session1',function(req,res){
    res.send("hi "+ req.session.username); //get from session. Can be set in variable too

});

于 2015-06-03T10:55:27.507 に答える