node获取cookie失败

最近在学习nodejs 并打算写一个个人博客

我在获取cooike时报错
clipboard.png

流程
1.当登陆成功时设置cookie





>   res.cookie('userInfo',{ _id: doc._id,username:doc.username},{domain:'localhost',maxAge:100000,httpOnly:true,});//httpOnly 只有服务器可以修改

2然后跳转到首页路由中 获取用户cookie

router.get('/', function (req, res, next) {
    if(req.cookies["userInfo"]._id!==null){
        data_home.user_info.user_id=req.cookies["userInfo"]._id;
        data_home.user_info.user_name=req.cookies["userInfo"].username;
    }
    res.render('index', data_home);

    // res.json(docs);
});

这样是可以成功读取cookie的

但是如果我没有登陆的话直接获取req.cookies["userInfo"]._id就回提示TypeError: Cannot read property '_id' of undefined(error路由触发); 所以我在首页的路由也加了判断 然后我发现不管怎样只要获取不到cookie就会出错

怎么才能正确判断cookie是否存在?

我用的是express后台框架

阅读 2.7k
1 个回答

举个例子

var a={};
a.v//是不是undefined
a.v.c//你觉的它能不报错吗Cannot read property 'c' of undefined

你的判断要加上
req.cookies["userInfo"]是否存在

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