javascript - 关于Express的cookie-parser
天蓬老师
天蓬老师 2017-04-11 12:47:48
[JavaScript讨论组]
在浏览器中打开http://localhost:3000之后就一直在转,不显示任何信息,求解答,谢谢大家

var express = require('express');
var app = express();
var cookieParser = require('cookie-parser');

app.use(cookieParser);
app.get('/',function (req,res)
{
    // 如果请求中的 cookie 存在 isVisit, 则输出 cookie
    // 否则,设置 cookie 字段 isVisit, 并设置过期时间为1分钟
    if (req.cookies.isVisit) {
     console.log(req.cookies);
     res.send("再次欢迎访问");
     }
    else {
     res.cookie('isVisit', 1, {maxAge: 60 * 1000});
     res.send("欢迎第一次访问");
     }
    res.send('Hello');

});

var server = app.listen(3000,function()
{


    var host = server.address().address;
    var port = server.address().port;

    console.log('The App running at://%s:%s',host,port);
});
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(1)
PHP中文网

https://github.com/expressjs/...

你的

app.use(cookieParser)

改为

app.use(cookieParser())

...貌似就可以了= =
源码部分如下,应该蛮容易理解的

function cookieParser(secret, options) {
  return function cookieParser(req, res, next) {
    if (req.cookies) {
      return next();
    }

    var cookies = req.headers.cookie;
    var secrets = !secret || Array.isArray(secret)
      ? (secret || [])
      : [secret];

    req.secret = secrets[0];
    req.cookies = Object.create(null);
    req.signedCookies = Object.create(null);

    // no cookies
    if (!cookies) {
      return next();
    }

    req.cookies = cookie.parse(cookies, options);

    // parse signed cookies
    if (secrets.length !== 0) {
      req.signedCookies = signedCookies(req.cookies, secrets);
      req.signedCookies = JSONCookies(req.signedCookies);
    }

    // parse JSON cookies
    req.cookies = JSONCookies(req.cookies);

    next();
  };
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号