【发布时间】:2017-02-14 09:53:50
【问题描述】:
我是 expressjs 的新手,我的问题与 express-session 有关。
app.js 在下面,在 package.json 中,我安装了 express 和 express-session。
如果我转到 'localhost:3000',在控制台中,req.session.flag 值将像这样变化:
前一个:未定义
后一个:1
前两个:1
两个之后:2
之后,如果我转到'localhost:3000/three',在控制台中,req.session.flag 的值会变成这样:
前三个:2
三个之后:3
如果此时我刷新 'localhost:3000/three',req.session.flag 的值将是 2 而不是 3。
前三个:2
三个之后:3
为什么会这样? req.session.flag 的值从上一点变成了 3,为什么在控制台中它从 2 开始?
如果我转到'localhost:3000',req.session.flag 的值也会从 2 开始,为什么会这样?
前一个:2
后一个:1
前两个:1
两个之后:2
谢谢!
var express = require('express');
var session = require("express-session");
var post = require('./routes/post');
var app = express();
var port = 3000;
app.use(session({secret:'fdsadfasdfdsafdsafdsafdsafd', saveUninitialized:false, resave: false}));
app.get('/', function (req, res, next) {
console.log("********************************");
console.log("One before: "+req.session.flag);
req.session.flag = 1;
console.log("One after: "+req.session.flag);
next();
},
function (req, res, next) {
console.log("Two before: "+req.session.flag);
req.session.flag = 2;
console.log("Two after: "+req.session.flag);
var html="<!DOCTYPE html><html><head><title>Hello world</title></head><body ><h1>Hello world</h1></body></html>";
res.send(html);
});
app.get('/three', function (req, res, next) {
console.log("********************************");
console.log("Three before: "+req.session.flag);
req.session.flag = 3;
console.log("Three after: "+req.session.flag);
});
app.listen(port);
【问题讨论】:
标签: javascript node.js session express express-session