2017-07-05 9 views
0

私は、Typescriptプロジェクト内でexpress-sessionとexpress-mysql-sessionを使用しようとしています。ここに私のコードの関連部分です:Typescriptプロジェクトで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); 

sessionStoreはタイプMySQLStoreでありながらstoreオプションはタイプexpressSession.Store | expressSession.MemoryStore | undefinedであるので、それがコンパイルされません。 私は何が間違っていますか?

よろしく

+0

お知らせ。 //github.com/chill117/express-mysql-session#how-to-use)、これはあなたが欠けているように見えるステップです。 – robertklep

+0

ええ、はい、そうですが、この呼び出しはどのようにES6構文のように見えますか?次の行は同等でなければなりません。 'express * session from" express-session "; ' ' import expressSession = require( "express-session"); ' 最初のものは新しい、ES6構文です。しかし、ES6の構文で 'require(" xyz ")(someparameter)'と書くにはどうすればいいですか? これ以外にも、タイプの不一致が修正されますか? –

答えて

1

この試し:session`が `([例コードで( '発現-MySQLをセッション')`必要HTTPSの結果に渡される方法 `

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

これはコンパイルされません。 'const MySQLStore'という行に次のようなエラーが表示されます:" type of type of MySQLStore "を呼び出すことができません。 'new'をインクルードしますか? 私は解決策を見つけましたが、古い構文を使用していると感じています: 'const expressMySqlSession = require(" express-mysql-session ")(expressSession);'、次にreturn new expressMySqlSession(sessionStoreConfig、this。 dbConnection); ' ところで、私はTypescript 2.4.1を使用します。 –

+0

@TimoKunze編集を参照してください、 'express-mysql-session'のインポートが間違っていました。上のコードは "通常の" JSで動作します。 – robertklep

+0

ExpressMySqlSessionのインポートが "Module '.../@ types/express-mysql-session/index'にデフォルトのエクスポートを持たずに失敗しました。 –

関連する問題