类型错误:无法使用 connect-session-sequelize 读取未定义的属性(读取“findOne”)

问题描述 投票:0回答:1
TypeError: Cannot read properties of undefined (reading 'findOne')
nodejs                  |     at SequelizeStore.get (/InboundBackend/node_modules/connect-session-sequelize/lib/connect-session-sequelize.js:78:12)
nodejs                  |     at session (/InboundBackend/node_modules/express-session/index.js:485:11)
nodejs                  |     at Layer.handle [as handle_request] (/InboundBackend/node_modules/express/lib/router/layer.js:95:5)
nodejs                  |     at trim_prefix (/InboundBackend/node_modules/express/lib/router/index.js:317:13)
nodejs                  |     at /InboundBackend/node_modules/express/lib/router/index.js:284:7
nodejs                  |     at Function.process_params (/InboundBackend/node_modules/express/lib/router/index.js:335:12)
nodejs                  |     at next (/InboundBackend/node_modules/express/lib/router/index.js:275:10)
nodejs                  |     at cookieParser (/InboundBackend/node_modules/cookie-parser/index.js:71:5)
nodejs                  |     at Layer.handle [as handle_request] (/InboundBackend/node_modules/express/lib/router/layer.js:95:5)
nodejs                  |     at trim_prefix (/InboundBackend/node_modules/express/lib/router/index.js:317:13)

我很确定我正确连接到我的数据库:

const config = require("./config/config.json");

const options = config[process.env.NODE_ENV];

const sequelize = new Sequelize(options);

var SequelizeStore = require('connect-session-sequelize')(session.Store);

function extendDefaultFields(defaults, session) {
  return {
    data: defaults.data,
    expires: defaults.expires,
    userId: session.userId,
  };
}

const oneHour = 1000 * 60 * 60 * 1;
var store = new SequelizeStore({
  db: sequelize,
  table: "sessions",
  extendDefaultFields: extendDefaultFields,
})


app.use(session({
  genid: 
    function(req) {
      return genuuid.v4() // use UUIDs for session IDs
    },
  secret:"test",
  store: store,
  cookie: {
    maxAge: oneHour,
    secure: true
  },
  resave: false,
  saveUninitialized: false // when set to false the session will only be stored when it is modified, perfect for login sessions
  
}))

sequelize.authenticate()
确认已连接到数据库

我传递

sequelize
对象的方式是否存在一些错误?否则我访问数据库没有问题。

提前谢谢您

node.js sequelize.js express-session
1个回答
0
投票

我找到了解决方案,我忘了添加最后一行

store.sync()

© www.soinside.com 2019 - 2024. All rights reserved.