Node.js nodeJS+;快速会话错误:无法设置属性';loggedin';未定义的`

Node.js nodeJS+;快速会话错误:无法设置属性';loggedin';未定义的`,node.js,session-variables,Node.js,Session Variables,如果用户登录,我试图创建一个会话变量(loggedin),但我得到TypeError:无法将属性“loggedin”设置为undefined。我不明白为什么它不起作用。我尝试重新安装会话记录,并在代码中更改它的位置,但仍然出现相同的错误。知道我为什么会犯这个错误吗 代码如下: var mysql = require('mysql'); var express = require('express'); var session = require('express-sess

如果用户登录,我试图创建一个会话变量(loggedin),但我得到
TypeError:无法将属性“loggedin”设置为undefined
。我不明白为什么它不起作用。我尝试重新安装会话记录,并在代码中更改它的位置,但仍然出现相同的错误。知道我为什么会犯这个错误吗

代码如下:

   var mysql = require('mysql');
    var express = require('express'); 
    var session = require('express-session'); 
    var bodyParser = require('body-parser'); 
    var path = require('path');
    var app = express();

    var connection = mysql.createConnection({
            host     : 'localhost',
            user     : 'root',
            password : 'password',
            database : 'database'
        });

app.use(session({secret: 'secret', resave: true, saveUninitialized: true})); //Session setup

app.use(bodyParser.urlencoded({extended : true}));
app.use(bodyParser.json());

const router6 = express.Router();

app.use('/static', express.static(path.join(__dirname + '/public'))); 

router6.get('/login', function(request, response) {
response.sendFile(path.join(__dirname + '/login.html'));
}); 


//*** SESSION VARIABLE SET BELOW ***// 
//Post for authentication, from form action

router6.post('/authThis', function(request, response) { 
   let username = request.body.username; 
   let password = request.body.password;
   console.log(username + password)

   if (username && password) { 
   connection.query('SELECT * FROM users WHERE username = ? AND password = ?', [username, password], function(error, results, fields) { 
        if (results.length > 0) { 
            request.session.loggedin = true; //Error here. Says cannot set loggedin property
            request.session.username = username; 
            response.redirect('/');
            } else {
                    response.send('Incorrect Username and/or Password!'); 
                }           
                response.end();
            });
        } else {
            response.send('Please enter Username and Password!'); //om anv & lös inte fyllts i.
            response.end();
        }
        });


//******
        module.exports = router6;

您正在导出路由器,它应该是应用程序

所以
app
可以访问所有中间件,
router6
不能

router6
app
的一个实例。您要求
应用程序
实例使用会话。但你实际上是在导出路由器


因此
module.exports=app应该可以解决这个问题。

您正在导出路由器,它应该是应用程序

所以
app
可以访问所有中间件,
router6
不能

router6
app
的一个实例。您要求
应用程序
实例使用会话。但你实际上是在导出路由器

因此
module.exports=app应该可以解决这个问题