【发布时间】:2021-02-04 21:04:18
【问题描述】:
我有一个简单的 ExpressJS 应用程序,它使用 cookie-session 创建一个 cookie。我定义了一些路由,但没有一个返回 cookie。 cookie-session 的文档说 req.session 需要更改以设置 cookie,这就是我正在做的,但它不起作用。当我在 Chrome 中检查应用程序 cookie 时,我没有看到任何 cookie。我的应用如下所示:
const express = require('express');
const cookieSession = require('cookie-session');
const { v4: uuid } = require('uuid')
const app = express();
app.use(express.json())
app.use(cookieSession({
name: 'shortlinks',
keys: [process.env.SESHSECRET],
maxAge: 30 * 24 * 60 * 60 * 1000 // 30 days
}))
app.use(function(req, res, next) {
console.log(`${req.method} ${req.url}`);
req.session.id = (req.session.id || uuid());
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', '*');
next();
})
app.get(
'/api/links',
(req, res, next)=> {
res.json(readDb());
next();
}
)
我必须做什么才能创建 cookie?
【问题讨论】:
-
您确定没有创建 cookie 吗?您可以尝试检查您的一条快速路线。
-
@Take-Some-Bytes 如何准确检查?
-
我很确定您可以从
req.headers.cookie属性中看到。在那里,您将看到CookieHTTP 标头,如果设置了 cookie,您应该可以在那里看到它。
标签: node.js express cookies cookie-session