如何在Typescript项目中使用express-mysql-session?

问题描述 投票:2回答:2

我正在尝试在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。我究竟做错了什么?

问候

mysql express typescript express-session
2个回答
1
投票

试试这个:

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);
...

0
投票
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
}))

这段代码对我有用。但我不知道为什么

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