我有一个node / express / ejs应用程序,当我转到页面时,它显示变量的值为null
。这是路线。
router.get("/events", isLoggedIn, function(req,res){
User.findById(req.params.id).populate("moments").populate("events").exec(function(err,allEvents){
if(err){
console.log(err);
console.log("Ummm.... the database may be down?.......")
} else {
if (allEvents === null){
res.redirect("/dashboard");
} else {
console.log("Below are all the events pulled");
console.log(allEvents)
res.render("eventsList", {events: allEvents});
}
}
});
});
所以事件是我传递给“eventsList”的变量。渲染上方的console.log显示事件,当我创建新事件时,它会附加到该列表。但是,每次进入/ dashboard页面时都好像allEvents中有null。
以下是客户端的代码:
<% events.forEach(function(events){ %>
我认为它与if语句有关,但我无法弄明白。
答案 0 :(得分:1)
也许您还没有在路线中指定userId参数
router.get("/events/:userId", isLoggedIn, function(req,res){
console.log("userId: ", req.params.userId)
User.findById(req.params.userId).populate("moments").populate("events").exec(function(err,allEvents){
if(err){
console.log(err);
console.log("Ummm.... the database may be down?.......")
} else {
if (allEvents === null){
res.redirect("/dashboard");
} else {
console.log("Below are all the events pulled");
console.log(allEvents)
res.render("eventsList", {events: allEvents});
}
}
})
});