【问题标题】:destroy session after some actions in NODEJS在 NODEJS 中执行某些操作后销毁会话
【发布时间】:2012-08-30 22:13:17
【问题描述】:

我想在会话销毁时执行一些操作。 我正在为我的应用程序使用 senchalabs 的 connect 模块和 express 模块。

【问题讨论】:

  • 您需要更加具体,从“会话正在破坏”的意思开始。
  • 如果旧会话被程序或其他方法手动销毁,我想获取上一个会话数据。因为我在会话和全局中也存储了一些数据,所以我需要为每个销毁的会话或每个重新生成的会话从全局中删除这些数据

标签: node.js session express connect destroy


【解决方案1】:

session#destroy 方法不会发出任何您可以在应用的其他部分侦听的事件,但如果您想在会话被销毁后立即运行某些代码,您可以将其包含在回调中。

// Example variable
var numOfUsersOnline = 100

req.session.destroy(function(err){
  // This get's run right after the session gets destroyed.
  // You can put any code you want run in here, for example

  // Descrease the number of users online
  numOfUsersOnline--;
});

【讨论】:

  • 我想在会话被破坏之前执行。
  • 您需要更具体一点。如果您希望它在会话被销毁之前运行,那么您只需将该代码放在 req.session.destroy 之前。
  • 每当创建新会话时,我都会创建一个带有时间戳的数组。但是当会话重新生成时,我将从我的数组中删除该特定会话及其时间戳。现在我这样处理: 1. 当会话是新的时,将会话和时间戳推送到数组中。 2.重新生成新会话时,从数组中删除会话及其时间戳。但有时我会遇到这样一种情况,即在删除之前我会遇到未定义的会话。
  • 如果会话即将被销毁,是否会触发任何事件?
  • 您可以在销毁会话之前触发事件。所以你会在req.session.destroy 之前触发它。其他代码可以监听该事件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多