2011-11-19 57 views
0

我目前正在使用NodeJS和Express開發API。無法在快速路由中間件中設置會話屬性



var express = require('express'); 
var app = express.createServer(); 

app.configure(function() { 
    app.use(express.cookieParser()); 
    app.use(express.session({ secret:"aaa"})); 

}); 



function tokenLogin (req, res) { 
    req.sesssion.uid = 1; 
} 
app.get('/api/news/:inbox', tokenLogin, function(req, res) { 

}); 
app.listen(3000); 
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env); 

當我打電話的路線/api/news/1,控制檯顯示一個類型錯誤:

 
TypeError: Cannot set property 'uid' of undefined 
    at tokenLogin (/Volumes/Dev/a/test.js:13:19) 
    at callbacks (/Volumes/Dev/a/node_modules/express/lib/router/index.js:272:11) 
    at param (/Volumes/Dev/a/node_modules/express/lib/router/index.js:246:11) 
    at param (/Volumes/Dev/a/node_modules/express/lib/router/index.js:243:11) 
    at pass (/Volumes/Dev/a/node_modules/express/lib/router/index.js:253:5) 
    at Router._dispatch (/Volumes/Dev/a/node_modules/express/lib/router/index.js:280:4) 
    at Object.handle (/Volumes/Dev/a/node_modules/express/lib/router/index.js:45:10) 
    at next (/Volumes/Dev/a/node_modules/express/node_modules/connect/lib/http.js:203:15) 
    at /Volumes/Dev/a/node_modules/express/node_modules/connect/lib/middleware/session.js:323:9 
    at /Volumes/Dev/a/node_modules/express/node_modules/connect/lib/middleware/session.js:338:9 

Is this a bug on my code or is an ExpressJS' bug?

回答

2

req.sesssion是一個錯字。你想要req.session

+0

哇,我感到完全慚愧!我一直在尋找原因近一個小時!非常感謝! – Francesc