Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js未拾取req.cookie_Javascript_Node.js - Fatal编程技术网

Javascript Node.js未拾取req.cookie

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

专家们

我是新手,但我尝试在用户登录时实现一些逻辑。当我收到一条成功的登录消息,我可以查看cookie并且cookie存在时,登录似乎正常:

然而,当我尝试访问cookie时,Chrome告诉我它不存在

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我没有——我添加了它,这也解决了问题。