0

私はnode.jsとセッションに不慣れで、node.jsセッションにいくつかの値を保存しようとしていますが、ページをリロードしてconsole.logを確認するたびにセッションが保存されていません。私のコード:

var session;
var org;

function checkSession(argument){
  var sess = argument;
  if(sess.org){
    return null;
  }
  else{
    return sess.org;
  }
}
/* GET home page. */
router.get('/', function(req, res, next) {
  session = req.session;
  var sessionChecked = checkSession(session);
  if(sessionChecked){
    org = sessionChecked;
  }
  else{
    org = req.query.org || 'Google';
    session.org = org;
    session.save();
  }

つまり、基本的に私が望むのは、ユーザーが初めてページをロードしたときに組織を入力できることです。そのとき、この組織はセッションに保存されるため、ページをリロードすると、組織はすでに選択されています.

私は本当に間違ったことや悪いコーディングをしているに違いないことを知っていますが、これを理解することはできません.

ありがとうございました!

4

2 に答える 2

1

呼び出しsession.save()が期待どおりに機能していないようです。ルートが完全に処理されない限り、Express はセッションに書き込みません。res.end()get 関数の最後に呼び出す必要がある可能性があります。

https://github.com/expressjs/session#reqsessionを見て、その例のコードの各行を理解してみてください。

幸運を!

于 2015-09-23T07:00:48.897 に答える
0

問題は、セッションが 20 秒で期限切れになることでした。愚かな私。

于 2015-10-01T17:35:24.670 に答える