2

私は現在、Web アプリに取り組んでいます。この Web アプリが呼び出されるたびにfs.mkdir、現在の高速セッションをすべて削除するため、このすべてのセッションを保持する方法が必要です。このすべてのセッションを connect-mongodb と connect-redis で保持しようとしましたが、どちらも機能しません。nodemon は常に req.session が未定義であると言っています。すべてのセッションを維持するために何をしなければならないかわかりません。

すべてのセッションを保持し、実行時にそれらを失わないようにする方法と、そのfs.mkdirためのチュートリアルが必要です。これに関する適切で完全なチュートリアルがまだ見つからないため、誰でも機能します! ここ、Stackoverflowでこれに関連するすべてを読んでいましたが、何でもうまくいきます! 助けてください!

4

1 に答える 1

1

それは非常にエキゾチックに聞こえfs.mkdirます。あなたのセッションが消された後です。(私はあなたの他のSOの質問を見つけました)

質問に戻りますが、セッション (redis) を使用するための小さなコード スニペットを次に示します。

var express = require('express')
  , fs = require('fs')
  , http = require('http')
  , RedisStore = require('connect-redis')(express)
  , sessionStore = new RedisStore()
  , app = express()
  ;

app.configure(function(){
  app.set('port', 3000);
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(express.cookieParser('secret'));
  app.use(express.session({
    store: sessionStore
  }));
  app.use(express.static(__dirname + '/public'));
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

app.get( '/', function(req, res){
  res.setHeader("Content-Type", "text/html");
  console.log( req.session );
  console.log( '------------------------' );
  res.end( 'root' );
});

app.get( '/dir/:id', function(req, res){
  console.log( req.session );
  console.log( '------------------------' );

  fs.mkdir( req.params.id );
  if ( req.session.dirs === undefined )
    req.session.dirs = [];
  req.session.dirs.push( req.params.id );

  console.log( req.session );
  console.log( '------------------------' );

  res.setHeader("Content-Type", "text/html");
  res.end( 'dir' );
});


server = http.createServer(app).listen(3000);

expressのドキュメントを読み、expressのを参照する必要があります

于 2012-12-22T22:15:27.233 に答える