Express.js和Node.js中不同路由的Cookie会话

时间:2018-06-22 01:55:09

标签: javascript cookie-session

我正在尝试在Express和Node.js以及我的应用程序中使用节点模块cookie-session。这是我要尝试做的一个例子。

在主应用程序文件中:

const express = require('express');
const session = require('cookie-session');
let app = express();

let login = require('./routes/login');
let profile = require('./routes/profile');

app.use(cookieSession({
    name: 'User Auth',
    maxAge: 30 * 60 * 1000,
    secret: 'oY7^28*Sm$#I91N!-NAWTTSOE#44884'
}));

app.use('/login', login);
app.use('/profile', profile);

//App.listen down here

在我要在其中使用会话的login.js文件中:

router.get('/', function(req, res){
    req.session.username = "Test Username";
    res.redirect('/profile');
})

此后,profile.js文件应呈现配置文件页面:

router.get('/', function(req, res, next){
    //If no username in session, return an error
    if (!req.session.username) {
        let err = "Not logged in.";
        return next(err);
    }
    res.render('profile', {username: req.session.username})
    //req.session.username should be "Test Username"
})

// Error handling

但是,最后却说未定义req.session.username。是什么原因造成的,我该如何解决?

0 个答案:

没有答案