How to get cookie value in expressjs

hope this will help you

const app = require('express')();
app.use('/', (req, res) => {
    var cookie = getcookie(req);
    console.log(cookie);
});

function getcookie(req) {
    var cookie = req.headers.cookie;
    // user=someone; session=QyhYzXhkTZawIb5qSl3KKyPVN (this is my cookie i get)
    return cookie.split('; ');
}

output

['user=someone', 'session=QyhYzXhkTZawIb5qSl3KKyPVN']

First note that Cookies are sent to client with a server request and STORED ON THE CLIENT SIDE. Every time the user loads the website back, this cookie is sent with the request.

So you can access the cookie in client side (Eg. in your client side Java script) by using

document.cookie

you can test this in the client side by opening the console of the browser (F12) and type

console.log(document.cookie);

you can access the cookie from the server (in your case, expressjs) side by using

req.cookies

Best practice is to check in the client side whether it stored correctly. Keep in mind that not all the browsers are allowing to store cookies without user permission.

As per your comment, your code should be something like

var express = require('express');
var app = express();

var username ='username';

app.get('/', function(req, res){
   res.cookie('user', username, {maxAge: 10800}).send('cookie set');
});

app.listen(3000);

For people that stumble across this question, this is how I did it:

You need to install the express cookie-parser middleware as it's no longer packaged with express.

npm install --save cookie-parser

Then set it up as such:

const cookieParser = require("cookie-parser");

const app = express();
app.use(cookieParser());

Then you can access the cookies from

req.cookies

Hope that help.