I’m currently developing an API using NodeJS and Express.
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);
When I call the route /api/news/1, the console shows a TypeError:
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?
req.sesssionis a typo. You wantreq.session.