Set a cookie value in Node.js

63,373

Solution 1

As Express is built on Connect, you can use the cookieParser middleware and req.cookies to read and res.cookie() to write cookies:

// configuration
app.use(express.cookieParser());
// or  `express.cookieParser('secret')` for signed cookies

// routing
app.get('/foo', function (req, res) {
    res.cookie('bar', 'baz');
    // ...
});

app.get('/bar', function (req, res) {
    res.send(req.cookies.bar);
});

[Update]

As of Express 4.0, Connect will no longer be included with Express and the default middleware have been moved into their own packages, including cookie-parser.

Solution 2

You could just use the response object that express provides to set your cookies.

You can find detailed information on how to do that at: http://expressjs.com/en/api.html#res.cookie

Share:
63,373
Javier Manzano
Author by

Javier Manzano

JavaScript, Node.js, React, Blockchain, ...

Updated on August 07, 2022

Comments

  • Javier Manzano
    Javier Manzano almost 2 years

    I'm developing a website with node.js and express. How can I set a cookie value?

  • Sysrq147
    Sysrq147 about 10 years
    I have the same problem. When I replace app.use(express.cookieParser()); with app.use(require('connect').cookieParser()); There is Set-Cookie:currentId=b8RuviEVAytniu62; in Response Headers. But when I try to acces it with req.cookies.currentId i get undefined.
  • hjpotter92
    hjpotter92 over 7 years
    THIS!! Exactly this! My colleague spent so much time searching for "express session write cookie" that they just did not bother to go through Express's docs.
  • grabantot
    grabantot almost 7 years
    cookie-parser is not actually necessary for res.cookie()
  • Hunter
    Hunter almost 5 years
    cookie-parser is necessary for req.cookies.bar else express will not be able to parse cookies passed by the browser.