TypeError: Cannot read property "_csrf" from undefined

I get CSRF token errors.

TypeError: Cannot read property '_csrf' of undefined at Object.handle (/home/nodejs/sites/IcoderStuff/node_modules/express/node_modules/connect/lib/middleware/csrf.js:45:28) at next (/home/nodejs/sites/IcoderStuff/node_modules/express/node_modules/connect/lib/proto.js:190:15) at Object.session [as handle] (/home/nodejs/sites/IcoderStuff/node_modules/express/node_modules/connect/lib/middleware/session.js:221:66) at next (/home/nodejs/sites/IcoderStuff/node_modules/express/node_modules/connect/lib/proto.js:190:15) at Object.cookieParser [as handle] (/home/nodejs/sites/IcoderStuff/node_modules/express/node_modules/connect/lib/middleware/cookieParser.js:60:5) at next (/home/nodejs/sites/IcoderStuff/node_modules/express/node_modules/connect/lib/proto.js:190:15) at Object.methodOverride [as handle] (/home/nodejs/sites/IcoderStuff/node_modules/express/node_modules/connect/lib/middleware/methodOverride.js:37:5) at next (/home/nodejs/sites/IcoderStuff/node_modules/express/node_modules/connect/lib/proto.js:190:15) at Object.expressValidator [as handle] (/home/nodejs/sites/IcoderStuff/node_modules/express-validator/lib/express_validator.js:148:10) at next (/home/nodejs/sites/IcoderStuff/node_modules/express/node_modules/connect/lib/proto.js:190:15)

Packages (packages.json)

 "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" 

Server.js

 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); }); 
+4
source share
1 answer

Perhaps this will help someone else, not sure if this was the same reason for me as it was for the OP. However, this problem arose after rebooting my computer, and after an embarrassing long time, I realized that this was because Redis (I used connect-redis as the session repository) did not restart automatically.

In other words, TypeError: Cannot read property '_csrfSecret' of undefined or csrf of undefined occur when the session store is unavailable.

+8
source

Source: https://habr.com/ru/post/1490923/


All Articles