Node 緩存小案例

一、使用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>

目錄:
在這裏插入圖片描述
二、使用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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章