简体   繁体   English

Node.js - 如何从快递 session 中删除项目

[英]Node.js - How to remove item from express session

Node.js - How to remove item from express session Node.js - 如何从快递 session 中删除项目

I tried to remove an item I recently added to the session from the session.我试图从 session 中删除我最近添加到 session 的项目。 But I'm getting an error:但我收到一个错误:

console.log('req.session:');
console.log(req.session);

req.session.checkout = 'Test';

var getSession = req.session;
console.log('getSession:');
console.log(getSession);

var { checkout, ...ret } = getSession;

console.log('ret:');
console.log(ret);

req.session = ret;

console.log('req.session:');
console.log(req.session);

console.log('req.session.checkout:');
console.log(req.session.checkout);

console:安慰:

req.session:
Session {
  cookie:
   { path: '/',
     _expires: 2020-07-16T12:04:03.332Z,
     originalMaxAge: 900000,
     httpOnly: true } }
getSession:
Session {
  cookie:
   { path: '/',
     _expires: 2020-07-16T12:04:03.332Z,
     originalMaxAge: 900000,
     httpOnly: true },
  checkout: 'Test' }
ret:
{ cookie:
   { path: '/',
     _expires: 2020-07-16T12:04:03.332Z,
     originalMaxAge: 900000,
     httpOnly: true } }
req.session:
{ cookie:
   { path: '/',
     _expires: 2020-07-16T12:04:03.332Z,
     originalMaxAge: 900000,
     httpOnly: true } }
req.session.checkout:
undefined
TypeError: req.session.touch is not a function

How do I properly remove it, so I get as result the original state back without the error?如何正确删除它,所以我得到原来的 state 没有错误?

req.session:
Session {
  cookie:
   { path: '/',
     _expires: 2020-07-16T12:04:03.332Z,
     originalMaxAge: 900000,
     httpOnly: true } }

Late answer, but maybe useful for those who got stuck.迟到的答案,但可能对那些陷入困境的人有用。

You can store sessionID = req.sessionID when you create the session.您可以在创建 session 时存储sessionID = req.sessionID req.sessionID。 Then you can delete it from the session store.然后您可以从 session 商店中删除它。

 req.sessionStore.all((error, sessions) => {
   req.sessionStore.destroy(sessionID, (error) => {});
 })

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM