Javascript Node.js未拾取req.cookie
专家们 我是新手,但我尝试在用户登录时实现一些逻辑。当我收到一条成功的登录消息,我可以查看cookie并且cookie存在时,登录似乎正常: 然而,当我尝试访问cookie时,Chrome告诉我它不存在Javascript Node.js未拾取req.cookie,javascript,node.js,Javascript,Node.js,专家们 我是新手,但我尝试在用户登录时实现一些逻辑。当我收到一条成功的登录消息,我可以查看cookie并且cookie存在时,登录似乎正常: 然而,当我尝试访问cookie时,Chrome告诉我它不存在 router.get('/', authController.isLoggedIn, viewsController.getOverview); 这是我的authController.isLoggedIn: exports.isLoggedIn = async (req, res
router.get('/', authController.isLoggedIn, viewsController.getOverview);
这是我的authController.isLoggedIn:
exports.isLoggedIn = async (req, res, next) => {
if (!req.cookies) {
console.log('no cookies');
return next();
}
etc...
当它运行时,我在控制台中收到“无cookies”消息,因此在应用任何逻辑之前,我们已经陷入了困境
有人能帮我诊断一下我遗漏了什么吗
提前谢谢 默认情况下,Express不会解析cookie。您必须安装
cookie解析器
中间件,以便将它们填充到req.cookie中
。运行npm安装--保存cookie解析器
,然后进行如下配置:
var cookieParser = require('cookie-parser');
app.use(cookieParser());
这清楚地记录为。什么是
req
对象的结构?您使用的框架是否提供了req
和res
的结构?可能是req
的结构不是您所期望的,这取决于它的调用方式。看起来您正在使用Express,您是否正确添加了cookie解析器
中间件var cookieParser=require('cookie-parser');使用(cookieParser())代码>@Mackers I console.logged它-cookie出现在req.headers中,因此我能够读取它并应用逻辑。不过,我在Udemy上做了一个node.js引导训练营,我们在那里使用了req.cookie,效果很好。就我的一生而言,我无法找出区别——我想我们在这两种情况下都使用了express。@esqew我没有——我添加了它,这也解决了问题。