Node.js nodejs express会话错误

Node.js nodejs express会话错误,node.js,session,express,Node.js,Session,Express,我用nodejs写了一个演示网站。在文件app.js中,我使用了express.session 案例1: app.use(express.cookieParser()) app.use(express.session({ secret: "whatever" })); //this code is working 案例2: app.use(express.session({ secret: "whatever" })); app.use(express.cook

我用nodejs写了一个演示网站。在文件
app.js
中,我使用了
express.session

案例1:

app.use(express.cookieParser())
app.use(express.session({    secret: "whatever"   }));  
//this code is working 
案例2:

app.use(express.session({    secret: "whatever"   }));   
app.use(express.cookieParser());
//this is not correct
错误日志为:

Express
500 TypeError: Cannot read property 'connect.sid' of undefined
at Object.session [as handle] (D:\web\nodejs\Weibo\node_modules\express\node_modules\connect\lib\middleware\session.js:239:32)
at next (D:\web\nodejs\Weibo\node_modules\express\node_modules\connect\lib\proto.js:193:15)
at Object.favicon [as handle] (D:\web\nodejs\Weibo\node_modules\express\node_modules\connect\lib\middleware\favicon.js:77:7)
at next (D:\web\nodejs\Weibo\node_modules\express\node_modules\connect\lib\proto.js:193:15)
at Object.handle (D:\web\nodejs\Weibo\node_modules\express-partials\index.js:94:5)
at next (D:\web\nodejs\Weibo\node_modules\express\node_modules\connect\lib\proto.js:193:15)
at Object.expressInit [as handle] (D:\web\nodejs\Weibo\node_modules\express\lib\middleware.js:30:5)
at next (D:\web\nodejs\Weibo\node_modules\express\node_modules\connect\lib\proto.js:193:15)
at Object.query [as handle] (D:\web\nodejs\Weibo\node_modules\express\node_modules\connect\lib\middleware\query.js:44:5)
at next (D:\web\nodejs\Weibo\node_modules\express\node_modules\connect\lib\proto.js:193:15)

中间件顺序在Express中很重要,因为它们是按照您定义的顺序执行的。在您的例子中,
cookieParser
中间件添加了一些由
会话
中间件使用的信息

您可以检查:

但是,会话数据不会保存在cookie本身中 使用cookies,因此我们必须使用cookieParser() 会话()之前的中间件


中间件顺序在Express中很重要,因为它们是按照您定义的顺序执行的。在您的例子中,
cookieParser
中间件添加了一些由
会话
中间件使用的信息

您可以检查:

但是,会话数据不会保存在cookie本身中 使用cookies,因此我们必须使用cookieParser() 会话()之前的中间件