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>
目录:
二、使用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>