ExpressJS Session Error: req.session.touch() is not a function
If you are using the NodeJS framework ExpressJS and are trying to save something into the session, maybe you get this error. Don’t worry, very easy to fix.
req.session.touch(); TypeError: undefined is not a function
How to reproduce the error
Try to replace the session object
// Error ahead!
req.session = { 'whatever': 'crash' };
req.session = 1; // This too
Error cause
You can’t replace the session object, it has own functions and properties.
So ExpressJS launches this crash if detects you are modifying it.
How to fix the session.touch error
Just add your data as session’s properties
// This works
req.session.user = { 'id': 123 };
req.session.pageviews = 1; // This too
Leave a comment for any suggestion, comment or doubt!