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
对象的方式是否存在一些错误?否则我访问数据库没有问题。
提前谢谢您
我找到了解决方案,我忘了添加最后一行
store.sync()
。