提交发布路线时,如何解决获取传递给ejs文件的数据的参考错误?

时间:2019-07-13 13:25:17

标签: javascript node.js mongodb express ejs

我正在创建一个Web应用程序,在该应用程序中,我将两个数据发送到ejs文件,并且在加载页面时可以正常工作,因为数据显示了我希望它在页面上的显示方式,但是当我提交发布路由后出现参考错误,它说我传入的数据未定义。

我在javaScript中的路由文件:

router.get("/journal/new", isLoggedIn, function(req, res){
    Goal.find({}, function(err, meansGoals){
        if(err){
           res.render("dailyJournal"); 
        } else {
            Goals.find({}, function(err, goals){
                if(err){
                    res.render("dailyJournal");
                } else {
                    res.render("dailyJournalNew", {meansGoals: meansGoals, goals: goals});
                }
            });
        }
    });
});

//post journal
router.post("/journal", isLoggedIn, function(req, res){
    Journal.create(req.body.journal, function(err, journal){
        if(err){
            res.render("dailyJournalNew");
        } else {
            journal.author.id = req.user._id;
            journal.author.username = req.user.username;
            journal.save();
            res.redirect("/journal");
        }
    });
});

该页面准确加载了我想要的MeansGoals和目标数据的信息,但是当我提交“新闻”时,它表示MeanGoals尚未定义。

ReferenceError: /home/ec2-user/environment/views/dailyJournalNew.ejs:52
    50|                 <input id="editbutton" class="btn btn-outline-danger" type="submit" value="Save my Journal!">
    51|                 <% var count = 0 %>
 >> 52|                 <% for(i = 0; i < meansGoals.length; i++){ %>
    53|                     <% if(currentUser.username === meansGoals[i].author.username){ %>
    54|                         <% if(count === 0){ %>
    55|                             <% count++ %>

meansGoals is not defined

如果您需要更多背景信息,请询问。我已经坚持了一段时间,非常感谢您的帮助!谢谢

1 个答案:

答案 0 :(得分:0)

这意味着if(err)中的router.post("/journal"条件已激活。您没有在此处传递meansGoals