在ExpressJS中打印会话对象



我正在尝试在ExpressJS框架的中间件中打印出一个会话对象。我是与Express会话的新手,想看看对象是否保存到redis,我在app.js file

中已配置了该对象。
[index.js (router)]
    router.use('/', function(req, res, next) {
        req.session.user = {};
        req.session.user.browserInformation = req.headers['user-agent'];
        console.log(req.session);
        next();
    });
    router.get('/', function(req, res, next) {
        res.render('index.html');
    });

[The app.js File:]
   'use strict';
    const createError = require('http-errors');
    const express = require('express');
    const path = require('path');
    const cookieParser = require('cookie-parser');
    const logger = require('morgan');
    const bodyParser = require('body-parser');
    const session = require('express-session');
    const redis = require('redis');
    const redisStore = require('connect-redis')(session);
    const client = redis.createClient();
    const app = express();
    const _Utils = require('./application/_Utils');
    // view engine setup
    app.set('views', path.join(__dirname, 'views'));
    app.set('view engine', 'ejs');
    app.use(logger('dev'));
    app.use(express.json());
    app.use(express.urlencoded({
        extended: false
    }));
    app.use(cookieParser());
    app.use(bodyParser.urlencoded({
        extended: false
    }))
    app.use(bodyParser.json())
    app.use(express.static(path.join(__dirname, 'views')));
    //require('./config/router')(app);
    let indexRouter = require('./routes/index');
    app.engine('html', require('ejs').renderFile)
    // catch 404 and forward to error handler
    app.use(function(req, res, next) {
        next(createError(404));
    });
    // error handler
    app.use(function(err, req, res, next) {
        // set locals, only providing error in development
        res.locals.message = err.message;
        res.locals.error = req.app.get('env') === 'development' ? err : {};
        // render the error page
        res.status(err.status || 500);
        res.render('error');
    });
    app.use(session({
        secret: _Utils.getHashedValue(),
        store: new redisStore({
            host: '127.0.0.1',
            port: 6379,
            client: client,
            ttl: 3600000
        }),
        saveUninitialized: false,
        resave: false,
        cookie: {
            expires: new Date(Date.now() + 3600000),
            maxAge: 3600000
        },
    }));
    module.exports = app;

我遇到的问题是,当我在终端客户端接口中执行键 *命令时,没有什么是打印或redis是空的

编辑:添加了整个app.js文件

在我的案例代码中工作:

console.log(req.session);

还使用此信息参加一些信息,请使用以下信息:

 req.session.mail="a@b.com";

孩子,您在Localhost中,在我们的代码中添加此不安全的cookie选项。例如:

app.use(session({ secret: 'GttiginYagmurlagelkuskunumyagmuralara' ,resave: true,
    saveUninitialized: true,
    cookie: { secure: false,maxAge:  3600000}}));

最新更新