2016-11-27 69 views
0

我有一個節點/ express/ejs應用程序,當我轉到頁面時,它顯示變量具有null值。這是路線。EJS變量顯示爲空

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顯示事件,當我創建一個新事件時,它附加到該列表。然而,每次它進入/儀表板頁面,就好像所有事件中都爲空。

這裏是在客戶端代碼:

<% events.forEach(function(events){ %> 

林gessing它是與if語句,但我不能弄明白。

回答

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}); 
     } 
    } 
}) 
}); 
+0

這並沒有工作,那部分代碼已經被以前的工作,無論在哪裏我CONSOLE.LOG的「allEvents」這表明空值?這個「if」陳述有什麼不正確嗎? – illcrx

+0

if語句沒有問題;你確定它正確調用的路線嗎? – Victorious

+0

請您發佈'console.log(req.params)' – Victorious