不能在会话变量 express 中使用 "Set"
cannot use "Set" in a session variable express
我试图将 Set 用作会话值,但由于某种原因,我得到了这个意外的结果。我正在从客户端向这条路线发出两个请求。
app.post("/api/add_to_cart", (req, res) => {
console.log(req.session.productList);
if (req.session.productList === undefined)
req.session.productList = new Set();
console.log(req.session.productList);
req.session.productList.add('one');
console.log(req.session.productList);
res.send();
});
输出:
undefined
Set(0) {}
Set(1) { 'one' }
{}
{}
TypeError: req.session.productList.add is not a function
但是如果我使用数组而不是 Set,它会按预期工作
app.post("/api/add_to_cart", (req, res) => {
console.log(req.session.productList);
if (req.session.productList === undefined)
req.session.productList = [];
console.log(req.session.productList);
req.session.productList.push('one');
console.log(req.session.productList);
res.send();
});
输出:
undefined
[]
[ 'one' ]
[ 'one' ]
[ 'one' ]
[ 'one', 'one' ]
由于某些未知原因,Set 对象正在更改为 {}。
我试图将 Set 用作会话值,但由于某种原因,我得到了这个意外的结果。我正在从客户端向这条路线发出两个请求。
app.post("/api/add_to_cart", (req, res) => {
console.log(req.session.productList);
if (req.session.productList === undefined)
req.session.productList = new Set();
console.log(req.session.productList);
req.session.productList.add('one');
console.log(req.session.productList);
res.send();
});
输出:
undefined
Set(0) {}
Set(1) { 'one' }
{}
{}
TypeError: req.session.productList.add is not a function
但是如果我使用数组而不是 Set,它会按预期工作
app.post("/api/add_to_cart", (req, res) => {
console.log(req.session.productList);
if (req.session.productList === undefined)
req.session.productList = [];
console.log(req.session.productList);
req.session.productList.push('one');
console.log(req.session.productList);
res.send();
});
输出:
undefined
[]
[ 'one' ]
[ 'one' ]
[ 'one' ]
[ 'one', 'one' ]
由于某些未知原因,Set 对象正在更改为 {}。