Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据会话id创建对象变量_Javascript_Node.js_Class_Oop_Initialization - Fatal编程技术网

Javascript 根据会话id创建对象变量

Javascript 根据会话id创建对象变量,javascript,node.js,class,oop,initialization,Javascript,Node.js,Class,Oop,Initialization,我正在用JS为Alexa编写一个技巧,我在创建用户对象时遇到了一个问题,因此超过1个用户可以同时使用我的代码。 我在代码开始时尝试过这样做: class MyUser { constructor() { this.name= ""; this.number = 0; this.question= ""; } } var myUser = new MyUser(); 但这毫无意义:如何根据会话创建用户?每个Alexa用户都会获得会话用户ID,每次用户开始我的技能时

我正在用JS为Alexa编写一个技巧,我在创建用户对象时遇到了一个问题,因此超过1个用户可以同时使用我的代码。 我在代码开始时尝试过这样做:

class MyUser {
  constructor() {
    this.name= "";
    this.number = 0;
    this.question= "";
  }
}
var myUser = new MyUser();
但这毫无意义:如何根据会话创建用户?每个Alexa用户都会获得会话用户ID,每次用户开始我的技能时,我都会得到这个变量:

event.session.user.userId
如何动态使用此功能?因此,如果每个用户都启动我的脚本,我肯定会创建一个新的用户对象,2个或更多的人可以并行使用我的技能

像这样的事情有意义吗

class MyUser {
  constructor() {
    this.name= "";
    this.number = 0;
    this.question= "";
  }
}
event.session.user.userId = new MyUser();
那么我能进入值名称吗?这样地? console.logevent.session.user.userId.name

我想在该位置创建会话用户对象:

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

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

      this.emit("Welcome");
  }
在您的案例中,event.session是什么?一般来说,会话持久性有很多解决方案。如果此应用程序是web服务器,则可以使用像中间件一样实现的完整库会话提供程序。对象将位于主机进程中,如Express中所示:

如果您需要一些持久性,可以使用store选项,比如store:newredistore,
在以前的配置中。

看起来您已经获得this.event.session.user对象。不要自己创建它。但我希望我可以将一个值连接到此对象。例如,我问我的用户一个名字。用户说我的名字是Anna,然后我可以调用这个名字this.event.session.user.name,我会得到Anna的名字
app.set('trust proxy', 1) // trust first proxy
app.use(session({
  secret: 'keyboard cat',
  resave: false,
  saveUninitialized: true,
  cookie: { secure: true }
}))