簡體   English   中英

如何在Typescript項目中使用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 | undefinedsessionStore是類型的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-sessionexpress-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM