我用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)发布于 2013-12-03 16:18:29
中间件订单在Express中很重要,因为它们是按照您定义的顺序执行的。在您的示例中,cookieParser中间件添加了session中间件使用的一些信息。
您可以检查连接文件
会话数据没有保存在cookie本身中,但是使用cookie,所以我们必须在session()之前使用cookieParser()中间件。
https://stackoverflow.com/questions/20355965
复制相似问题