express-session搭配connect-session-sequelize时报错sessions表不存在如何解决
问题原因
你没有调用connect-session-sequelize提供的sync()方法触发表同步,该依赖不会自动创建sessions表,既不是代码缺陷也不需要你手动建表,只要补一行同步代码即可解决。
解决步骤
- 先将Store实例单独赋值,再调用
sync()方法
修改你现有session配置部分的代码:
// 初始化session存储实例 const sessionStore = new SequelizeStore({ db: db }) // 触发sessions表同步,不存在则自动创建 sessionStore.sync() // 配置session app.use(session({ secret: 'shhh', store: sessionStore, resave: false, saveUninitialized: true, cookie: { maxAge: 1000000 } }))
- 重启服务即可,依赖会自动在你的数据库中创建符合要求的
sessions表,不需要手动定义字段或建表。
额外注意事项
你示例代码中/api/create接口里的john和verysecurepassword是未定义变量,作为字符串使用时需要包裹引号,否则接口调用时会抛出变量未定义报错。
内容的提问来源于stack exchange,提问作者easymoney
相关产品推荐
相关产品推荐

