Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在另一个模块中未定义req.session_Javascript_Node.js_Session_Express - Fatal编程技术网

Javascript 在另一个模块中未定义req.session

Javascript 在另一个模块中未定义req.session,javascript,node.js,session,express,Javascript,Node.js,Session,Express,我正在尝试创建一个简单的登录应用程序,我想为它存储登录用户的会话。但每次我试图访问另一个模块中的req.session时,它都会显示未定义的where,因为值已经设置好了 下面是我的代码 app.js var express = require('express') , routes = require('./routes') , login = require('./routes/login') , userInfo = require('./routes/userInfo')

我正在尝试创建一个简单的登录应用程序,我想为它存储登录用户的会话。但每次我试图访问另一个模块中的req.session时,它都会显示未定义的where,因为值已经设置好了

下面是我的代码

app.js

var express = require('express')
  , routes = require('./routes')
  , login = require('./routes/login')
  , userInfo = require('./routes/userInfo')
  , MemoryStore = new express.session.MemoryStore()
  , http = require('http')
  , path = require('path');

var app = express();

// all environments
app.set('port', process.env.PORT || 7272);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({
      store : MemoryStore,
      secret: 'random_string_goes_here',
      duration: 30 * 60 * 1000
}));
app.use(routes);
app.use(express.methodOverride());
app.use(express.static(path.join(__dirname, 'public')));
app.use(function(req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Headers',
            'Origin, X-Requested-With, Content-Type, Accept, Authorization');
        next();
});
app.use(app.router);

// development only
if ('development' === app.get('env')) {
  app.use(express.errorHandler());
}

app.get('/', routes.index);
app.post('/login', login.afterLogin);
app.get('/userInfo', userInfo.userInfo);

http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});
login.js

 var usrname, paswd;

    var ejs = require("ejs");
    var mysql = require("./mysql");
    var jwt = require('jwt-simple');

    function afterLogin (req, res) {
        var getU = "SQL Query";

        mysql.fetch(function(err,results){
            if(err) {
                throw err;
            } else {
                if (results.length > 0){
                    req.session.usrname = req.param("username");
                    res.send({
                        "login":"Success",
                        "error" : "none"
                    });
                } else {        
                    res.json({
                        "login":"Fail",
                        "error" : "User Not Valid"
                    });
                }
            }
        }, getU);
    }

    exports.afterLogin = afterLogin;
在这里,该值存储在会话变量中

但是,当我试图在另一个模块中检索这个值时,它表示未定义

userInfo.js

var mysql = require("./mysql");

function userInfo (req, res) {
    console.log("Session Store : : " + req.session.usrname); // this is undefined

    var getUser = "Some SQL Query";

    mysql.fetch(function(err,results){
        if(err) {
            throw err;
        } else {
            if (results.length > 0){
                res.json({
                  "status":"Success",
                  "error" : "none"
                });

            } else {
                res.json({
                    "status":"fail",
                    "error" : "User Not Valid"
                });
            }
        }
    }, getUser);
}

exports.userInfo = userInfo;

我明白了,您分配了req.session.usrname,但没有分配req.session.token抱歉,我将其更改为显示usrname,但我仍然面临相同的问题