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
Comments
-
Javier Manzano almost 2 years
I'm developing a website with node.js and express. How can I set a cookie value?
-
Sysrq147 about 10 yearsI 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 over 7 yearsTHIS!! 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 almost 7 years
cookie-parser
is not actually necessary forres.cookie()
-
Hunter almost 5 years
cookie-parser
is necessary forreq.cookies.bar
else express will not be able to parse cookies passed by the browser.