欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Node 缓存小案例

程序员文章站 2022-05-30 15:06:09
...

一、使用cookie-parser作缓存

App.js:

var express=require("express");
var app=new express();
var cookieParser=require("cookie-parser");
app.use(cookieParser());
var saveCookie=require("./saveCookie");

app.set("view engine","ejs");
//删除cookie,直接修改maxAge为0,即过期直接删除
app.get("/",function(req,res){
    var types=req.cookies.type;
    if(types){
        res.render("index",{
            types:types
        });
    }else{
        res.render("index",{
            types:[]
        });
    }    
});
app.get("/cloth",function(req,res){
    saveCookie(req,res);
    res.send("服装");
});
app.get("/shoe",function(req,res){
    saveCookie(req,res);
    res.send("鞋子");
});
app.get("/hat",function(req,res){
    saveCookie(req,res);
    res.send("帽子");
});
app.get("/computer",function(req,res){
    saveCookie(req,res);
    res.send("电脑");
});
app.get("/life",function(req,res){
    saveCookie(req,res);
    res.send("生活用品");
});
app.listen(8100);

saveCookie.js:

module.exports=function(req,res){
    var name=req.query.name;  //浏览的东西
    var types=req.cookies.type;
    if(types){
        types.push(name);
    }else{
        types=[];
        types.push(name);
    }
    res.cookie("type",types,{maxAge:1000*5});
}

index.ejs:

<body>
    <div>首页</div>
    <div>
        <a href="/cloth?name=服装">服装</a>
        <a href="/shoe?name=鞋子">鞋子</a>
        <a href="/hat?name=帽子">帽子</a>
        <a href="/computer?name=电脑">电脑</a>
        <a href="/life?name=生活用品">生活用品</a>
    </div>
    <div>我浏览过:
        <%for(var i=0;i<types.length;i++){%>
            <span><%=types[i]%></span>
        <%}%>
    </div>
</body>

目录:
Node 缓存小案例
二、使用express-session作缓存

App.js:

var express=require("express");
var ejs=require("ejs");
var session=require("express-session");
var app=new express();
app.set("view engine","ejs");
app.use(session({
    secret:"yian",  //设置签名
    resave:false,  //强制保存session,即使它没有变化,默认为true,建议设为false(不强制)
    saveUninitialized:true,  //初始化一个session,强制将为初始化的session存储
    cookie:{
        maxAge:1000*60*60,  //有效期时间
        signed:true  //设置签名
    },  //设置到返回前端的一些值
    rolling:true  //在每次请求时,重置当前cookie的有效期
}));
app.get("/",function(req,res){
    res.render("index");
});
app.get("/setsession",function(req,res){
    //session存值
    req.session.user="kun";
    res.send("存储成功!");
});
app.get("/getsession",function(req,res){
    var name=req.session.user;
    res.send(name);
});
app.listen(8100);

index.ejs:

<body>
    <div>首页</div>
    <div>
        <a href="/setsession">express-session</a>
    </div>
</body>