Express TypeError:无法读取属性'_csrf&x27;未定义的

Express TypeError:无法读取属性'_csrf&x27;未定义的,express,Express,我收到CSRF令牌错误 TypeError:无法在Object.session[作为句柄]的下一个(/home/nodejs/sites/IcoderStuff/node_modules/express/node_modules/connect/lib/middleware/csrf.js:45:28)读取Object.handle(/home/nodejs/sites/sites/icoderstuf/node_modules/connect/lib/proto.js:190:15)处未定义的

我收到CSRF令牌错误

TypeError:无法在Object.session[作为句柄]的下一个(/home/nodejs/sites/IcoderStuff/node_modules/express/node_modules/connect/lib/middleware/csrf.js:45:28)读取Object.handle(/home/nodejs/sites/sites/icoderstuf/node_modules/connect/lib/proto.js:190:15)处未定义的属性'\csrf'(/home/nodejs/sites/IcoderStuff/node_modules/express/node_modules/connect/lib/middleware/session.js:221:66)在Object.cookieParser[作为句柄]的下一个(/home/nodejs/sites/IcoderStuff/node_modules/express/node_modules/connect/lib/proto.js:190:15)(/home/nodejs/sites/IcoderStuff/node_modules/express/node_modules/connect/lib/middleware/cookieParser.js:60:5)下一个(/home/nodejs/sites/IcoderStuff/node_modules/express/node_modules/connect/lib/proto.js:190:15)在Object.methodOverride[作为句柄](/home/nodejs/sites/IcoderStuff/node_modules/express/node_modules/connect/lib/middleware/methodOverride.js:37:5)在下一个(/home/nodejs/sites/icoderstuf/node_modules/express/node_modules/connect/lib/proto.js:190:15)在Object.expressValidator[作为句柄](/home/nodejs/nodejs/sites/IcoderStuff/node/node/node/node/modules/node/node/node/接下来(/home/nodejs/sites/IcoderStuff/node_modules/express/node_modules/connect/lib/proto.js:190:15)

包(Packages.json) Server.js
也许这会帮助其他人,不确定这是否是我和OP的相同原因。然而,在重新启动计算机后,这个问题出现在我身上,在令人尴尬的长时间之后,我发现这是因为Redis(我使用connect Redis作为会话存储)没有自动重新启动


换句话说,
TypeError:无法读取未定义
的属性'\u csrfSecret'或
csrf of undefined
在会话存储不可用时发生。

感谢安德烈亚斯的回答。我遇到了完全相同的问题。周五关闭redis,周一忘记启动它。是的,我简直不敢相信我被这个问题烧坏了再一次!!--谢谢Andreas。为了抓住这个问题,我正在向Sails发送一条错误消息。回答得很好。在设置
cokie解析器之前,我也在做同样的事情,并要求获得
csrf
令牌。我不知道为什么,但下面是我出现这个错误的原因:如果你在
csrf
插件之后放置Cookie解析器,它不会给出错误他犯了同样的错误。
"express": "3.0.3",
"less-middleware": "0.1.12",
"hbs": "2.3.0",
"express-validator": "0.4.1",
"mongoose" : "3.x",
"node-uuid" : "1.x",
"request" : "2.x",
"async" : "0.2.x",
"date-utils": "1.x",
"jade": "0.31.2",
"xml2js" : "0.2.7",
"MD5" : "1.0.3",
"csv" : "0.3.3",
"nodemailer" : "0.4.4"
app.configure(function(){
  app.set('port', process.env.PORT || 8080);
  app.set('views', __dirname);
  app.set('view engine', 'html');
  app.engine('html', require('hbs').__express);
  app.use(express.favicon());
  app.use(express.logger('dev'));
  app.use(express.bodyParser());
  app.use(expressValidator);
  app.use(express.methodOverride());
  app.use(express.cookieParser());
  app.use(express.session({ secret: 'xkvnjiersape', store: store }));
  app.use(express.csrf());
  app.use(express.static(path.join(__dirname, 'public')));
  app.use(require('less-middleware')({ src: __dirname + '/public' }));  
  app.use(require('grunt-contrib-livereload/lib/utils').livereloadSnippet);
  app.use(app.router);
});