无法读取Cookie中未定义的属性“程序"? [英] Cannot read property 'program' of undefined in cookies?

查看:64
本文介绍了无法读取Cookie中未定义的属性“程序"?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是Nodejs程序的初学者,我尝试做简单的cookie程序.我成功设置并删除了cookie.但是我无法获取以前设置的cookie.它显示错误.有人可以告诉我如何获取nodejs中的cookie预先感谢....

I am beginner in Nodejs program I tried to do simple cookies program.I successfully set and delete the cookies successfully.but I could not get the cookies what I set before.It shows an error.can anyone tell me how to get the cookie in nodejs Thanks in advance....

const express=require("express");
const cookieParser=require("cookie-parser");
const app=express();
const router=express.Router();
const port=process.env.Port||8086;
app.use(router);
app.use(cookieParser());
router.get("/setcookie",function(req,res)
{
    console.log("Come in to set the cookie");
    res.cookie("program","NodeJS"/*,{maxAge:60000}*/);
    res.cookie("Database","MongoDB"/*,{maxAge:1200000}*/);
    console.log("Cookie set successfully");
    res.send("Cookie set successfully");
});
router.get("/deletecookie",function(req,res)
{
    console.log("come in to delete the cookie");
    res.clearCookie("program");
    res.send("Cookie deleted successsfully");
});
router.get("/getcookie",function(req,res)
{
    console.log("Come in to read the cookie");
    console.log(req.cookies['program']);
    console.log(req.cookies['Database']);
    res.send("Cookie Accessed successfully");
});
app.listen(port,function()
{
    console.log("server is listening on port 8086");
});


ERROR I GOT:

TypeError: Cannot read property 'program' of undefined
    at C:\Users\VIGNESH\WebstormProjects\cookies-middleware\simple-cookies.js:25:28
    at Layer.handle [as handle_request] (C:\Users\VIGNESH\WebstormProjects\cookies-middleware\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\Users\VIGNESH\WebstormProjects\cookies-middleware\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (C:\Users\VIGNESH\WebstormProjects\cookies-middleware\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (C:\Users\VIGNESH\WebstormProjects\cookies-middleware\node_modules\express\lib\router\layer.js:95:5)
    at C:\Users\VIGNESH\WebstormProjects\cookies-middleware\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (C:\Users\VIGNESH\WebstormProjects\cookies-middleware\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\VIGNESH\WebstormProjects\cookies-middleware\node_modules\express\lib\router\index.js:275:10)
    at Function.handle (C:\Users\VIGNESH\WebstormProjects\cookies-middleware\node_modules\express\lib\router\index.js:174:3)
    at router (C:\Users\VIGNESH\WebstormProjects\cookies-middleware\node_modules\express\lib\router\index.js:47:12)

推荐答案

您需要在 router 之前添加 cookieParser(),因此代码将是

You need to add the cookieParser() before the router, so the code will be

app.use(cookieParser());
app.use(router);

因为否则控件甚至都不会进入 cookieParser

Because otherwise the control is not even getting into cookieParser

这篇关于无法读取Cookie中未定义的属性“程序"?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆