我正在尝试在Typescript项目中使用express-session和express-mysql-session。这是我的代码的相关部分:
import * as express from "express";
import * as expressSession from "express-session";
import * as expressMySqlSession from "express-mysql-session";
this.express = express();
const sessionStore = new expressMySqlSession(sessionStoreConfig, this.dbConnection);
const sessionHandler = expressSession({
...,
store: sessionStore
});
this.express.use(sessionHandler);
它没有编译,因为store
选项的类型为expressSession.Store | expressSession.MemoryStore | undefined
,而sessionStore
的类型为MySQLStore
。我究竟做错了什么?
问候
试试这个:
import * as express from "express";
import * as expressSession from "express-session";
import expressMySqlSession from "express-mysql-session";
const MySQLStore = expressMySqlSession(expressSession);
const sessionStore = new MySQLStore(sessionStoreConfig, this.dbConnection);
...
import * as express from 'express';
import * as session from 'express-session';
const MySQLStore = require('express-mysql-session')(session);
import pool from './database';
const sessionStore = new MySQLStore({
schema: {
tableName: 'mire_sessions',
columnNames: {
session_id: 'session_id',
expires: 'expires',
data: 'data'
}
}
}, pool);
const app = express();
app.use(session({
secret: 'z',
resave: false,
saveUninitialized: true,
store: sessionStore
}))
这段代码对我有用。但我不知道为什么