30

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

1

2 Answers 2

43

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.

Sign up to request clarification or add additional context in comments.

3 Comments

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.
cookie-parser is not actually necessary for res.cookie()
cookie-parser is necessary for req.cookies.bar else express will not be able to parse cookies passed by the browser.
5

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

1 Comment

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.