res.locals不会更新,继续显示旧值

时间:2018-02-07 16:06:42

标签: javascript node.js express

在我的主app.js文件中,我有这段代码:

app.use(function (req, res, next){
    res.locals.currentUser = req.user;
    next(); 
});

...正如您所见,可以从护照中获取用户信息。它确实是它的工作......直到它不止一次被使用。每当我以用户身份登录,并且我点击任何其他路由时,都应该触发res.locals.currentUser来更新......但事实并非如此。它保持旧的价值..我不能为我的生活找出原因。我已经阅读了文档并对所有内容进行了三重检查。似乎没有任何故障。

HERE就是所有代码。

最重要的文件:

重要提示 :通过直接从护照中索取用户,尝试从护照中获取用户的其他任何实例都像魅力一样。示例是主文件中的第58行:

res.render("campgrounds/index", {campgrounds: campgrounds, user1: req.user});

,对应于索引页面的第7-11行:

<% if(!user1) { %>
     <h1> Welcome to YelpCamp! </h1>
<% } else { %>
     <h1> <%= user1.username %>, Welcome to YelpCamp! </h1>
<% } %>

每次都能正确返回用户数据。有没有想过为什么会这样做?感谢。

0 个答案:

没有答案