我在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");
}
答案 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,
。