根据会话ID创建对象变量

时间:2017-07-26 11:04:07

标签: javascript node.js class oop initialization

我在JS中为Alexa编写了一项技能,我在创建用户对象方面遇到了问题,因此超过1位用户可以同时使用我的代码。 我尝试在代码的开头以这种方式执行此操作:

class MyUser {
  constructor() {
    this.name= "";
    this.number = 0;
    this.question= "";
  }
}
var myUser = new MyUser();

但是没有意义:(我如何根据会话创建用户?每个Alexa用户都获得会话userId,每次用户启动我的技能时我都会获得此变量:

event.session.user.userId

如何动态使用此功能?因此,如果每个用户都启动我的脚本我确定创建了一个新的用户对象,并且有两个或更多人可以使用我的技能并行

这样有意义吗?

class MyUser {
  constructor() {
    this.name= "";
    this.number = 0;
    this.question= "";
  }
}
event.session.user.userId = new MyUser();

所以我能够进入价值名称?像这样?     console.log(" event.session.user.userId.name");

我想在那个地方创建一个会话用户对象:

var newSessionHandlers = {
  "NewSession": function () {

    console.log(this.event.session.user.userId);

      this.emit("Welcome");
  }

1 个答案:

答案 0 :(得分:1)

您的案件中event.session是什么?通常,会话持久性有很多解决方案。如果此应用程序是Web服务器,则可以使用完整的库会话提供程序,像中间件一样实现。对象将存在于主机进程中,如Express

中所示
app.set('trust proxy', 1) // trust first proxy
app.use(session({
  secret: 'keyboard cat',
  resave: false,
  saveUninitialized: true,
  cookie: { secure: true }
}))

如果您需要一些持久性,请使用store选项,例如之前配置中的store: new RedisStore,