javascript - express+ejs 如何禁用缓存

查看:85
本文介绍了javascript - express+ejs 如何禁用缓存的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

主页index.ejs显示用户名和用户头像,点击的个人中心跳转至信息详情页;在信息详情页修改信息以及上传头像等操作,点击保存之后从信息详情页回到主页index.ejs,这些操作后,数据库数据已经更新,但是主页indexejs中的头像,并没有更新。如果清除浏览器缓存,再次重新登录的话就可以更新用户头像。
请问这是不是属于缓存的问题,查到的一些写法可是不管用,我先贴在下面

第一种:

var ejs = require('ejs'),
LRU = require('lru-cache');
ejs.cache = LRU(100);

第二种:

app.use(express.static(path.join(__dirname, 'public')));
app.get("/*",function (req, res, next) {
    res.setHeader('Last-Modified',(new Date()).toUTCString());
    next();
})

第三种:

app.set('view cache', false);

第四种:

app.disable('view cache');

即使把这些都写上也不管用,还是需要清除浏览器缓存才可以更新用户头像,请大神指点。

解决方案

最终还是要自问自答。
其实之前那个问题不是缓存的事,是我自己把自己给误导了。主要是我在渲染修改个人信息页面的时候没有findOne,也没有用session,所以我每次修改的数据是成功了,但是要显示的数据在指定页面却显示不出来。所以上面的所有都可以不要。

//加载info
router.get("/admin/info/edit",function (req, res, next) {
    User.findOne({_id : req.session.user._id},function (err, doc) {
        if(err) return next(err);
        req.session.user = doc;
        console.log(doc)
        res.render("admin/info/msg",{title:"user_info"})
    })
});

    //发送请求
    router.post("/admin/info/edit",function (req, res, next) {

    var send_data = {
        username : req.body.username,
        age : req.body.age,
        address : req.body.address,
        hobby : req.body.hobby,
        sex : req.body.sex,
        weight : req.body.weight,
        tall : req.body.tall,
        pic_path : req.body.avatar,
        date : moment().format()
    };
    // console.log(send_data);
    User.findOne({_id:req.session.user._id}).lean().exec(function (err, doc) {
        if(err) return res.json({error : err.toString()});
        User.update({_id:req.session.user._id },send_data,function (err, doc) {
        if(err) return res.json({error : err.toString()});
            res.send({status : "ok!"});
        });
    })
});


好几天没搭理,今天没事干就想看看,结果无意间就发现了这个问题。给各位初学者的一个建议,想不明白的事,我们可以放一放。也许在不经意的某个瞬间你就想起来了。

这篇关于javascript - express+ejs 如何禁用缓存的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆