2013-04-14 4 views
1

나는 localhost : 3000/name/john을 실행하여 쿠키를 생성합니다 다음은 localhost : 3000/name입니다. 콘솔 오류가 있습니다. "TypeError : 속성 'name'을 읽을 수 없습니다. 의 "정의되지 않은 세션을 만드는 방법 express.js

내 코드

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')); 
    }); 

방법이 문제를 해결하는 모양? 감사합니다

+0

: 요청 요청에 : name 매개 변수를 전달하고 있습니까? 또한이 하나의 읽기 http://stackoverflow.com/questions/14006190/deal-and-keep-node-js-express-sessions –

+1

솔루션은 링크를 읽을 찾으십시오 http://stackoverflow.com/questions/10645792/ node-js-and-express-how-to-cooke-but-un-undefined –

답변

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을 살펴보십시오. 여기서 문제는 미들웨어 우선 순위에 있습니다.

관련 문제