NodeJS 如何在express中使用cookieSession

qq24tv8q  于 2023-05-28  发布在  Node.js
关注(0)|答案(3)|浏览(208)

我尝试使用connect的内置cookieSession对象,但无法使其与express正常工作。
我有这个app:

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]

有什么想法吗

jdzmm42g

jdzmm42g1#

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

app.use(express.cookieParser());
app.use(express.cookieSession());
app.use(app.router);

在那之后工作得很有魅力。
参见:https://stackoverflow.com/a/10239147/2454820

jk9hmnmh

jk9hmnmh2#

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

nwwlzxa7

nwwlzxa73#

我也有这个问题。原来everyauth是与connect 1.7.5链接的模块之一,在npm删除everyauth之后,所有问题都消失了。

相关问题