req.cookies in express is not being populated

I am setting a session cookie as part of PassportJS. I can see the connect.sid cookie being passed to the browser, and back to the application on subsequent HTTP requests.

However, when I read req.cookies in one of my routes, it is empty. I have set up express.cookieParser(), express.session(), and passport.session() in configuration settings. Is there anything else that needs to be done in order to use cookies in Express / Node?

Here are my app configuration settings:

app.configure(function () {
  app.set("db_url", config.db[app.settings.env]);
  app.set('port', process.env.PORT || 3000);
  app.use(express.logger('dev'));  /* 'default', 'short', 'tiny', 'dev' */
  app.use(express.static(path.join(__dirname, 'public')));
  app.use(express.cookieParser());
  app.use(express.bodyParser());
  app.use(express.session({secret: "keyboard cat"}));
  app.use(passport.initialize());
  app.use(passport.session());
  app.use(users);
  app.use(orgs);
  app.use(errorHandler);
});

Thanks!

Try req.session instead req.cookies. If you want to store information within the cookie you need to set them similar to

res.cookie('remember', 1, { maxAge: 60 * 1000 });

Then req.cookies should contain

{ remember: '1' }

The default value of req.session is

{ cookie: 
  { path: '/',
    _expires: null,
    originalMaxAge: null,
    httpOnly: true
  }
}