如何创build会话express.js

我运行本地主机:3000 /名称/约翰,创build一个cookie,然后本地主机:3000 /名称显示cookie我有一个控制台错误“TypeError:无法读取未定义的属性'名称'

看我的代码

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

如何解决这个问题呢 ? 谢谢

修改你的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 。 这里的问题是中间件的优先级。