1

localhost:3000/name/john を実行し、Cookie を作成してから localhost:3000/name を実行して Cookie を表示すると、コンソール エラー「TypeError: プロパティ 'name' が未定義で読み取れません」が表示されます

私のコードを見てください

 var express = require('express')
     , http = require('http') 
     , path = require('path') ;

var app = express();        

        app.configure(function(){
            app.set('port', process.env.PORT || 3000);
            app.use(express.bodyParser()) ;
            app.use(express.methodOverride()) ;
            app.use(app.router);

            app.use(express.cookieParser());  
            app.use(express.session({ secret: 'secret'}));
        }) ;

      app.get('/name/:name', function(req, res){
            res.cookie('name' , req.params.name).send('<p>the cookie <a href="/name">Go here</a></p>') ;
       });

      app.get('/name', function(req, res){
          console.log(req.cookies.name);
          res.send("index");
      });  

    http.createServer(app).listen(app.get('port'), function(){
      console.log('Express server listening on port ' + app.get('port'));
    });

この問題を解決するには?ありがとう

4

1 に答える 1

1

app.configure コードを次のように変更します。

app.configure(function(){
      app.set('port', process.env.PORT || 3000);
      app.use(express.bodyParser()) ;
      app.use(express.methodOverride()) ;
      app.use(express.cookieParser());  
      app.use(express.session({ secret: 'secret'}));
      app.use(app.router);
}) ;

http://expressjs.com/api.html#app.useをご覧ください。ここでの問題は、ミドルウェアの優先順位にあります。

于 2013-04-15T05:50:41.763 に答える