如何在expressjs中获取cookie值

时间:2017-06-29 04:45:42

标签: node.js express cookies

我正在使用cookie解析器,所有教程都讨论了如何设置cookie以及它到期的时间但没有教我们如何获取这些cookie的价值

3 个答案:

答案 0 :(得分:9)

首先请注意,Cookie会通过服务器请求发送到客户端,存储在客户端。每次用户加载网站时,都会随请求一起发送此cookie。

因此,您可以使用

访问客户端的cookie(例如,在客户端Java脚本中)
document.cookie

您可以通过打开浏览器控制台(F12)并键入

在客户端进行测试
console.log(document.cookie);

您可以使用

从服务器(在您的情况下,expressjs)访问cookie
req.cookies

最佳做法是检查客户端是否正确存储。请记住,并非所有浏览器都允许在未经用户许可的情况下存储Cookie。

根据您的评论,您的代码应该类似于

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);

答案 1 :(得分:0)

希望这会对您有所帮助

var app=requir('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('; ');
}

输出

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

答案 2 :(得分:0)

对于偶然发现此问题的人,这是我的做法:

您需要安装express cookie-parser中间件,因为它不再与express打包在一起。

PS C:\Users\arthu\MS>

然后将其设置为

npm install --save cookie-parser

然后您可以从

访问cookie。
const cookieParser = require("cookie-parser");

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

希望有帮助。