node.js - 在 Express Session 中更改变量
问题描述
我正在使用 express-session 包,我想更改会话中的变量“_id”。这是我的会话初始化
app.use(session({
secret: "secretshhhhhh",
resave: true,
saveUninitialized: false,
}))
在登录页面之后,我尝试使用以下几行存储 id:
req.session._id = user._id.toString()
req.session.save(function (err) {
req.session.save(function (err) {
console.log(req.session)
})
})
console.log 使用 id 打印会话,但是当我尝试在其他页面中获取 _id 时,会向我发送一个空对象。这是没有 _id 的打印会话示例
return res.status(200).send(req.session);
我尝试了很多方法,但这些方法都不适合我。
编辑:这是我将其置于会话中的全部功能
module.exports.login_post = async function (req, res) {
User.findOne({ email: req.body.email }, function (err, user) {
if (user == null) {
return res.status(400).send({
message: "User not found"
})
}
else {
if (user.validPassword(req.body.password)) {
req.session._id = user._id.toString()
req.session.save(function (saveErr) {
req.session.reload(function (reloadSave) {
console.log(req.session, saveErr, reloadSave)
})
})
}
}
})
}
这是我从会话中获取它的整个功能
module.exports.session_get = function(req, res) {
return res.status(200).send(req.session);
}
module.exports.session_destroy = function(req, res) {
req.session.destroy();
return res.status(200).send({
message: "Session detroyed"
});
}
解决方案
推荐阅读
- android - 无法获取 Android 广告 ID
- haskell - 参照透明和保护
- r - 错误:呼叫被被呼叫者拒绝。COMStop() - 读取 excel 密码保护文件 - 使用 R - xl.read.file() 函数
- bash - 从管道运行 bash 脚本总是挂起
- sql - Create a flag which updated on the basis of Order date in Hive
- boost - 使用 cmake 安装目标依赖项
- cordova - Cordova 使用 gulp 发布 apk
- python - Plotly 中一个绘图的两个或三个颜色条
- redis - Sentinel Slave 上的 Redis 错误“used_memory_human”
- c# - 获取请求 URL 中的 OData 查询过滤器