I'm developing a website with node.js and express. How can I set a cookie value?
Asked
Active
Viewed 6.4k times
30
-
Does this answer your question? [Get and Set a Single Cookie with Node.js HTTP Server](https://stackoverflow.com/questions/3393854/get-and-set-a-single-cookie-with-node-js-http-server) – Antoni Jul 06 '20 at 14:25
2 Answers
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
.

Jonathan Lonowski
- 121,453
- 34
- 200
- 199
-
2I 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. – Sysrq147 May 01 '14 at 17:21
-
2
-
`cookie-parser` is necessary for `req.cookies.bar` else express will not be able to parse cookies passed by the browser. – Hunter Aug 02 '19 at 12:53
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

MT.
- 1,915
- 3
- 16
- 19
-
2THIS!! 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. – hjpotter92 Jan 13 '17 at 16:25