2017-04-19 8 views
-1

これはapp.jsのコードです。セッションをmongoDBに保存します。セッションの値を取得できないのはなぜですか?

私はreq.session.userを取得したいとき、私は定義されていません。 ユーザーログイン時にセッションを保存します。

exports.fetchCourse = async (req, res) => { 
    console.log("session is: " + req.session.user); 
    if(req.session.user) { 
     const user = await User.findOne({_id: req.session.user._id}).populate("course"); 
     console.log("course are: " + user.course.length); 
     res.status(200).send({ 
      code: 1, 
      data: user.course, 
      msg: "获取全部课程" 
     }) 
    } 
} 

答えて

0

expressSsessionの代わりにcookieSessionを使用しています。

docsに応じて(あなたが上記の特急4を使用している場合)あなたのコードは次のようになりなければならない。私が代わりにcookieSessionの特急・セッションを使用する場合

const session = require('express-session'); 
const mongoStore = require('connect-mongo')(session); 
const db = mongoose.connect("mongodb://localhost/course"); 




app.use(session({ 
     secret: "system", 
     store: new mongoStore({ 
      mongooseConnection: db.connection, 
      collection: "sessions" 


}) 
+0

はい、しかし、それはまだ動作しません。 。 – gyyin

+0

2つの異なるセッションIDがあることがわかりました。リクエストを送信すると、sessionIDはログインのsessionIDと異なります – gyyin

関連する問題