I'm developing a website with node.js and express. How can I set a cookie value?
2 Answers
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.
3 Comments
Sysrq147
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.
grabantot
cookie-parser is not actually necessary for res.cookie()Hunter
cookie-parser is necessary for req.cookies.bar else express will not be able to parse cookies passed by the browser.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
hjpotter92
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.