Node.js 路由之间的持久会话express会话NodeJS
我无法使用express会话在不同路由器之间保持会话。这是我的app.jsNode.js 路由之间的持久会话express会话NodeJS,node.js,ajax,express,express-session,Node.js,Ajax,Express,Express Session,我无法使用express会话在不同路由器之间保持会话。这是我的app.js const express = require('express'); const myRoutes = require('./routes/my-route'); const app = express(); const session = require('express-session'); app.use(session({ secret: 'SECRET', cookie: {maxAge:
const express = require('express');
const myRoutes = require('./routes/my-route');
const app = express();
const session = require('express-session');
app.use(session({
secret: 'SECRET',
cookie: {maxAge: 60*60*1000, httpOnly: true, secure: false},
resave: false,
saveUninitialized: true,
}));
app.use('/my-routes', myRoutes);
app.use('/submit', function(req, res, next) {
req.session.info = req.body.info;
});
对/submit
的任何调用都可以正常工作,并且会话将得到维护。但是,当我尝试使用/my routes/
调用任何内容时,会创建一个新的cookie并重置会话
在任何调用之前,这是会话的外观
{
"cookie": {
"originalMaxAge":3600000,
"expires":"2018-06-08T17:51:37.229Z",
"secure":false,
"httpOnly":true,
"path":"/"
}
}
一次呼叫/submit
{
"cookie": {
"originalMaxAge":3600000,
"expires":"2018-06-08T17:51:37.229Z",
"secure":false,
"httpOnly":true,
"path":"/"
},
"info": "thing"
}
然后,当我调用/my routes/
这看起来像是因为新的过期而重置了cookie
这就是我对ajax的称呼
$.ajax({
type: 'POST',
url: '/submit',
data: data,
dataType: 'json',
success: function(data) {
window.location.href = '/index.html';
},
});
你真的应该展示
my routes
的实现,但我猜它正在创建一个新的路由器?@James目前它只是用router打印到控制台上。get(“”,函数)
@twoshort尝试添加这个。。req.session.save(函数(err){//session saved})@James它返回时没有错误,仍然没有错误work@TwoShort39岁;t我的建议:)尽管你应该养成按原样打电话的习惯&;amp#39;当您移动到持久会话存储时,这是必需的(这里不是问题)。您能否详细说明您的测试场景并显示所有相关的代码。
$.ajax({
type: 'POST',
url: '/submit',
data: data,
dataType: 'json',
success: function(data) {
window.location.href = '/index.html';
},
});