如何在expressjs中获取cookie值

新手上路,请多包涵

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

原文由 Keitaro Urashima 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 974
2 个回答

首先请注意,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);

原文由 Shanil Fernando 发布,翻译遵循 CC BY-SA 3.0 许可协议

对于偶然发现这个问题的人,我就是这样做的:

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

 npm install --save cookie-parser

然后这样设置:

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

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

然后你可以从

req.cookies

希望有所帮助。

原文由 Mustafa 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题