【发布时间】:2020-06-30 02:45:45
【问题描述】:
我正在尝试从用户那里保存这个名为 server 的变量。提交后,他们转到另一个页面。在该页面上,我验证了他们的server 存在,如果不存在,则将其发回。
当我运行 post 请求时会话被保存,因为我立即通过 get 请求检查它是否存在(通过客户端)。但是,如果我刷新我的页面,则不再定义会话并且将用户送回家(通过日志验证了这一点)。我认为它与 cookie 相关,但我似乎无法让它发挥作用。
这是我的 sessions.js 路线:
const session = require('express-session');
const express = require("express");
const router = express.Router();
router.use(session({
secret: 'ssshhhhh',
resave: false,
saveUninitialized: true,
cookie: { secure: false }
}));
router.get('/check', (req, res) => {
let sesh = req.session;
console.log("Checking server exists: " + sesh.server);
res.send(sesh.server);
});
router.post('/login', (req, res) => {
let sesh = req.session;
sesh.server = req.body.server;
console.log("Setting server: " + sesh.server);
res.send(sesh.server);
});
module.exports = router;
这就是返回承诺的请求的方式:
function setSession(value) {
return $.post("/sessions/login", { 'server': value }).then();
}
function getSession() {
return $.get("/sessions/check").then();
}
【问题讨论】:
标签: javascript jquery node.js express express-session