在我的主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>
<% } %>
每次都能正确返回用户数据。有没有想过为什么会这样做?感谢。