【问题标题】:Set a cookie value in Node.js在 Node.js 中设置 cookie 值
【发布时间】:2012-08-27 17:50:05
【问题描述】:

我正在使用 node.js 和 express 开发一个网站。如何设置 cookie 值?

【问题讨论】:

标签: javascript node.js express cookies


【解决方案1】:

您可以只使用 express 提供的响应对象来设置您的 cookie。

您可以在以下网址找到有关如何执行此操作的详细信息:http://expressjs.com/en/api.html#res.cookie

【讨论】:

  • 这个!!正是这个!我的同事花了很多时间搜索“express session write cookie”,以至于他们根本懒得浏览 Express 的文档。
【解决方案2】:

由于 Express 是基于 Connect 构建的,因此您可以使用 cookieParser middlewarereq.cookies 来读取并使用 res.cookie() 来写入 cookie:

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

[更新]

从 Express 4.0 开始,Connect will no longer be included with Express 和默认中间件 have been moved into their own packages,包括 cookie-parser

【讨论】:

  • 我也有同样的问题。当我替换 app.use(express.cookieParser());与 app.use(require('connect').cookieParser());有 Set-Cookie:currentId=b8RuviEVAytniu62;在响应标头中。但是当我尝试使用 req.cookies.currentId 访问它时,我得到了未定义。
  • cookie-parser 对于res.cookie() 来说实际上并不是必需的
  • cookie-parser 对于req.cookies.bar 是必需的,否则 express 将无法解析浏览器传递的 cookie。
猜你喜欢
  • 2016-07-27
  • 2016-05-19
  • 2021-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多