简体   繁体   English

会话在node.js和express.js中的某些页面上变为空

[英]Session getting null on some pages in node.js and express.js

I am using express in node.js and trying to set the session variable here is my code:- 我在node.js中使用express并尝试设置会话变量,这是我的代码:-

var express = require('express');
app.use(express.session({ secret: 'mysecret', cookie: { maxAge: 999999999, path: '/' } })); // session secret

Here m setting session:- 在这里设置会话:

 app.get('/login', function (req, res) {
   req.session.Name="Hello";
 }

its working fine and return value for these routes:- 这些路线的正常运作和返回值:-

app.get('/users',function (req, res) {
    console.log(req.session.Name);
    res.render('home.ejs');
});
app.get('/userList',function (req, res) {
    console.log(req.session.Name);
    res.render('home.ejs');
});

But not working in this route and always return undefined or null:- 但不能在此路由下工作,并且始终返回undefined或null:

 app.get('/user/:id', function (req, res) {
    console.log(req.session.Name);
    res.render('home.ejs');
});

what I am doing wrong? 我做错了什么? Please help me to solve this issue. 请帮我解决这个问题。 Thanks 谢谢

May be you use an outdated version of packages. 可能是您使用了过时的软件包版本。 Same code is work with package express-session. 相同的代码可用于程序包快速会话。 ( https://github.com/expressjs/session ). https://github.com/expressjs/session )。 Example code is below: 示例代码如下:

    var express = require('express');
    var session = require('express-session');
    var app = express();
    app.use(session({
        secret: 'mysecret',
        cookie: {
            maxAge: 999999999,
            path: '/'
        }
    })); // session secret
    app.get('/login', function(req, res) {
        req.session.Name = "Hello";
        res.send('Hello World');
    });
    app.get('/users', function(req, res) {
        console.log(req.session.Name);
        res.send('Hello World');
    });
    app.get('/userList', function(req, res) {
        console.log(req.session.Name);
        res.send('Hello World');
    });
    app.get('/user/:id', function(req, res) {
        console.log(req.session.Name);
        res.send('Hello World');
    });
    app.listen(8080);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM