[英]How to store my session MySQL with express-mysql-session
[英]How to use express-mysql-session in Typescript projects?
我正在嘗試在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
因此無法編譯expressSession.Store | expressSession.MemoryStore | undefined
expressSession.Store | expressSession.MemoryStore | undefined
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
}))
這段代碼對我有用。 但是我不知道為什么
將express-session
, express-mysql-session
和@types/express-mysql-session
列為依賴項:
類型的當前版本 (大約兩年前)跟蹤舊版本的express-mysql-session
,其中默認導出為class。 幸運的是,此較早版本的庫中有一些向后兼容 ,因此您可以直接實例化它:
import MySQLSessionStore from "express-mysql-session";
const store = new MySQLSessionStore({...});
該庫將為您處理導入express-session
依賴項 。
代碼永不說謊!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.