چگونه از express-mysql-session در پروژههای تایپاسکریپت استفاده کنیم؟
من در تلاش هستم از 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);
...
پاسخ شماره ۲
با هر دو express-session، express-mysql-session و @types/express-mysql-session که به عنوان وابستگیها فهرست شدهاند:
نسخه فعلی انواع (از حدود دو سال پیش) نسخه قدیمیتری از express-mysql-session را دنبال میکند، جایی که صادرات پیشفرض همان کلاس است. خوشبختانه، در این کتابخانه برای این نسخه قدیمی، سازگاری بازگشتی وجود دارد، بنابراین میتوانید مستقیماً آن را نمونهسازی کنید:
import MySQLSessionStore from "express-mysql-session";
const store = new MySQLSessionStore({...});
و کتابخانه مسئول وارد کردن وابستگی express-session برای شما خواهد بود.
کد هرگز دروغ نمیگوید!
