Cookies - tdkehoe/blog GitHub Wiki

This code will set two headers:

var http = require('http'),
fs = require('fs');

var server = http.createServer(function(req, res) {
  console.log(req.headers['cookie']);
  var template = fs.readFileSync('./index.html'); // a simple router
  res.setHeader('Set-Cookie', ['bestDog=Sarge', 'dogsBestFriend=Turbo']);
  res.end(template);
})

server.listen(2001, function() {
  console.log("Server running on 2001.");
});

Don't send multiple res.setHeader, the last response will override something.

The following code encrypts a cookie, using NodeSession. It then reads (get) a cookie, sets (put) a cookie, then deletes (forget) the cookie.

var    http = require('http'),
         fs = require('fs'),
NodeSession = require('node-session');

var session = new NodeSession({secret: 'Q3UBzdH9GEfiRCTKbi5MTPyChpzXLsTD'});

var server = http.createServer(function(req, res) {
  session.startSession(req, res, function() {
    console.log("Before: " + req.session.get('bestDog')); // read cookie
    req.session.put('bestDog', 'Sarge'); // add cookie
    console.log("Cookie added: " + req.session.get('bestDog')); // read cookie
    req.session.forget('bestDog')
    console.log("What cookie?: " + req.session.get('bestDog')); // read cookie
    var template = fs.readFileSync('./index.html');  // a simple router
    res.end(template);
  })
})

server.listen(2001, function() {
  console.log("Server running on 2001.");
});