ExpressJS set / receive / use cookies

Unable to get customized cookies in requests.

I set my cookie using

response.cookie('name', 'My name'); 

I would like to get my cookie this way and it worked before then, but I changed the configuration and I don't know what the problem is right now.

 request.cookies is and empty Object 

My express configuration:

 var express = require('express'), api = require('./routes/api'); var app = express(); app.configure(function () { app.set('port', process.env.PORT || 3000); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.json()); //app.use(express.bodyParser()); app.use(express.compress()); // New call to compress content app.use(express.cookieParser()); app.use(express.session({secret: 'secret'})); app.use(app.router); app.use(express.methodOverride()); //app.use(express.static(__dirname + '/public')); }); app.all('*', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); res.header("Access-Control-Allow-Headers", "X-Requested-With, Content-Type"); next(); }); app.configure('development', function () { app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); app.configure('production', function () { app.use(express.errorHandler()); }); 

Cookie Settings:

 exports.singIn = function (req, res) { var mail = req.query.mail, password = req.query.password; return user.find({ mail: mail }).then(function (d) { var user = usersData(u); res.cookie('mail', user.mail, { maxAge: 900000}); res.cookie('password', crypted, { maxAge: 900000}); res.json({ user: user }); return { user: user } }).catch(function () { res.json(400, {"error-tag": "error-sing-in"}); return {"error-tag": "error-sing-in"}; }); }; 

Receiving cookies:

 exports.account = function (req, res) { var mail = req.cookies.mail, password = req.cookies.password; //here req.cookies is an empty object. I don't know why? }; 
+7
javascript cookies session express
source share
1 answer

Answer for 2017.

 const cookieParser = require('cookie-parser'); const express = require('express'); const app = express(); app.use(cookieParser()); 

to get a cookie from an incoming request.

 let cookie = req.cookies['cookiename']; 

to set a response cookie (this cookie will be sent to all future incoming requests before it is deleted or expired).

 res.cookie('cookiename', 'cookievalue', { maxAge: 86400 * 1000, // 24 hours httpOnly: true, // http only, prevents JavaScript cookie access secure: true // cookie must be sent over https / ssl }); 

to delete the response cookie.

 res.cookie('cookiename', 'cookievalue', { maxAge: 0 }); 
+3
source share

All Articles