2016-12-10 5 views
0

私はこの問題を持っている '未定義':request.session.regenerate動作していない、未定義の

request.session.regenerate(function() { 

       request.session.user = username; 
       return response.send(username); 
}); 

私は常に未定義のエラーを取得してログイン:私はちょうどreturn response.send(username);を残す場合は

Cannot read property 'regenerate' of undefined 

をそれはうまく動作しますが、私はセッションを作成する必要があります。

何が問題になりますか?

もっとコード

router.post('/login', bodyParser, function(request, response) { 
    var username = request.body.username; 
    var password = request.body.password; 


    adminUser.findOne({ 
     username: username 
    }, function(err, data) { 
     if (err | data === null) { 
      return response.send(401, "User Doesn't exist"); 
     } else { 
      var usr = data; 

      if (username == usr.username && bcrypt.compareSync(password, usr.password)) { 

       request.session.regenerate(function() { 

       request.session.user = username; 
       return response.send(username); 

       }); 
      } else { 
       return response.send(401, "Bad Username or Password"); 
      } 
     } 
    }); 
}); 

を追加しました:app.use (session());

は今その作業。あなたの問題を解決したように見えるので、

+0

あなたは '特急を使用していますか? – doublesharp

+0

@doublesharp jep 'var express = require( 'express'); var router = express.Router();' – AlCode

+1

あなたはセッション管理に何を使用していますか? ['express-session'](https://www.npmjs.com/package/express-session)?より多くのコードがなければ、 'request.session'が設定されていないということだけが言います。 – doublesharp

答えて

1

Expressが自動的にrequest.sessionを持っていない...答えに私のコメントを作ります。 express-sessionのようなものを作成するミドルウェアを使用している必要があります。あなたは特急・セッションを使用している場合は、追加します。

const session = require('express-session'); 

app.use(session({secret: 'my super secret'})); 
関連する問題