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?
哇,我感到完全慚愧!我一直在尋找原因近一個小時!非常感謝! – Francesc