Node.js 如何在express中使用cookieSession

Node.js 如何在express中使用cookieSession,node.js,express,connect,Node.js,Express,Connect,我正在尝试使用connect的内置cookieSession对象,但无法使其与express一起正常工作 我有这个应用程序: var express = require('express'); var connect = require('connect'); var app = express.createServer(); app.configure(function() { app.use(express.logger()); app.use(express.bodyParse

我正在尝试使用connect的内置
cookieSession
对象,但无法使其与express一起正常工作

我有这个应用程序:

var express = require('express');
var connect = require('connect');

var app = express.createServer();

app.configure(function() {
  app.use(express.logger());
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(express.cookieParser('whatever'));
  app.use(connect.cookieSession({ cookie: { maxAge: 60 * 60 * 1000 }}));
});

app.get('/', function(req, res) {
    res.render('root');
});

app.listen(3000);
我得到了这个错误:

TypeError: Cannot read property 'connect.sess' of undefined
    at Object.cookieSession [as handle] 
有什么想法吗


谢谢

您的
连接
模块的版本是什么?
cookieSession
中间件是在2.0.0版中首次添加的。运行
npm list | grep connect
以确保您的
connect
版本至少为2.0.0或更高版本。

我也遇到了这个问题。事实证明,everyauth是与connect 1.7.5链接的模块之一,npm删除everyauth后,所有问题都消失了。

会话将无法工作,除非您按以下顺序拥有这3个模块:

app.use(express.cookieParser());
app.use(express.cookieSession());
app.use(app.router);
在那之后,工作得很有魅力


请参阅:

Express附带connect 1.8.6,所以是的,这可能就是它不工作的原因。ThanksExpress 3随附connect 2.7。您使用connect.cookieSession而不是express.cookieSession有什么特殊原因吗?@AndersBornholm这个问题很老了,当时可能不可用。我遇到了一个错误:
secret
cookie会话所需的选项只需添加一个秘密:app.use(express.cookieSession({secret:'mysecret'});删除
app.use(app.router)
它对我有效。(还必须添加秘密)