express+cookie 设置客户端缓存

🌙
手机阅读
本文目录结构

核心代码

req.cookies.set(‘userInfo’,JSON.stringify(responseData.data));

如果本地有 cookie,每次请求的时候,浏览器会带过去

req.userInfo=JSON.parse(req.cookies.get(“userInfo”));

第三步:渲染;把读取到的 req.userInfo 配置给页面使用;

第四步:就是页面的模板引擎判断了;

app.js 文件;

var express = require('express');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var Cookies = require('cookies')
var app = express();
swig.setDefaults({ cache: false });
//设置读取Body
app.use(bodyParser.urlencoded({ extended: true }));
app.use(function (req, res, next) {
  req.cookies=newCookies(req, res);
  req.userInfo= {};
  if (req.cookies.get('userInfo')) {
    try {
    req.userInfo=JSON.parse(req.cookies.get('userInfo'));
    } catch (e) { }
    console.log(req.userInfo._id)
  }
  next();
})

api.js(接口文件)

//是否在数据库中
User.findOne({
    'username':username,
    'password':password,
    }).then(function(data){
        if(!data){
            responseData.code=4;
            responseData.message='Error !!!!'
            returnres.json(responseData)
        }else{
            responseData.message='success'
            responseData.data={
            _id:data._id,
            username:data.username,
        }
        req.cookies.set('userInfo',JSON.stringify(responseData.data));
        returnres.json(responseData)
    }
})

main.js(路由配置的渲染文件)

var express =require('express');
var router=express.Router();
router.get('/',function(req,res,next){
    res.render('main/index',{
        userInfo:req.userInfo
    });
})
module.exports=router;

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了