gpt4 book ai didi

javascript - Node.js:无法存储 req.session 作为引用

转载 作者:行者123 更新时间:2023-12-03 11:07:44 26 4
gpt4 key购买 nike

我有一个引用 req.session 对象的变量 a,但是,当我后来更改该 req.session 对象时,它在a中没有改变,为什么?

var a;

app.post('/set', function(req, res){
a = req.session; // now a is a reference to req.session
res.end();
});

app.post('/change', function(req, res){
req.session.changed = true;
console.log(a); // a has no attribute 'changed', why?
res.end();
});

为了执行,我首先执行了 POST/set,然后执行了 POST/change

最佳答案

它不会按照您期望的方式工作,因为 session 对象将按请求重新创建。。这行代码

req.session.changed = true;

添加 object-specific property这意味着它只会在特定的 req.session 对象上设置,req.session 的所有其他实例都不会更改。如果您希望 req.session所有实例都具有changed属性,那么您需要添加一个原型(prototype)基础类型的属性,例如

SessionType.prototype.changed = true;

但是,您应该重新考虑这里的方法,因为如果发出 2 个后续的 POST/set 请求,那么您无法保证 POST/更改

关于javascript - Node.js:无法存储 req.session 作为引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27765269/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com