Как работают вложенные страницы / схемы мангуста? Получение ошибок - PullRequest
0 голосов
/ 16 октября 2019

Я делаю сайт, который является фиктивным форумом, где пользователь нажимает на тему форума, переходит на уникальную страницу .ejs с форумами, а затем переходит на другую уникальную страницу .ejs, где находится форум, где обе страницыизменено в зависимости от того, что пользователь заполняет форму на предыдущей странице. Первый шаг сработал, но я продолжаю получать либо ошибку TypeError «не могу прочитать имя свойства с нулем», либо ошибку ссылки (в зависимости от того, какую информацию об объекте я печатаю на странице .ejs), когда в итоге нажимаю на ссылку, котораяперейдите со страницы «Тема форума» на «Форум». Данные добавляются в базу данных, и я создал соответствующие схемы mongoose, которые связаны друг с другом и основным приложением, поэтому я не уверен, в чем проблема.

Я использую это с express и mongodb /mongoose, страница с ошибкой типа - это страница .ejs. Я предполагаю, что основная проблема заключается в одном из блоков маршрутизации в основном документе приложения, но это может быть не так, а может быть какая-то другая концепция или конфигурация страницы, которую я не получаю. Как обстоят дела с вложенными схемами и страницами для тех, кто более опытен в этом?

Вот сама страница с ошибкой:

TypeError: /Users/roberts4/project_4/views/forum.ejs:4
    2| 
    3| <nav class = "container">
 >> 4|      <a href = "#">Welcome to Forum/ <%= forum.name %></a>
    5|      <a href = "#">Reply</a>
    6|      <a class = "btn btn-primary btn-sm" href="/main/<%= forumtopic._id 
       %>/<%= forum._id %>/reply/new">Add New Forum</a>
    7|  

 Cannot read property 'name' of null

Функция записи, которую вы увидите, имеет "форум", созданный внутри "форумтопного" идентификатора, в отличие от того, для чегоЯ сделал это при публикации самой «форумтопики». Я пытался добавить переменные req.body, но кажется, что это используется, только если вы не публикуете их на другой странице.

///there is code above this for forumtopic that's similar, except the 
////.post block has the .create by itself and not inside of .findById

app.get("/main/:id/forum", function(req, res){
    Forum.find({}, function(err, allForums){
        if(err){
            console.log(err);
        } else {
            res.render("forumtopic", {forums: allForums});
        }
    })
});


app.post("/main/:id/forum", function(req, res){
  ForumTopic.findById(req.params.id, function(err, forumtopic){
    if(err){
        console.log(err);
        res.redirect("/main");
    } else {
        //console.log(req,body.comment);
        Forum.create(req.body.forum, function(err, forum){
            if(err){
                console.log(err);
            } else {
                forumtopic.forums.push(forum);
                forumtopic.save();
                res.redirect('/main/' + 
                                    forumtopic._id);
            }
        })
    }
})
});


app.get("/main/:id/forum/new", function(req, res){
     ForumTopic.findById(req.params.id, function(err, forumtopic){
        if(err){
        console.log(err);
        } else {
            res.render("newforum", {forumtopic: forumtopic});
        }
      })
});


app.get("/main/:id/:forumid", function(req, res) {

     Forum.findById(req.params.id).populate("replies").exec(function(err, 
     foundForum) {
        if(err){
            console.log(err);
        } else {
            console.log(foundForum);
            res.render("forum", {forum: foundForum});
        }
       })
 });

 ///there is code below this that's not accessed yet because of the error

Получение TypeError 'не можетчитать имя свойства null ', ожидая страницу, которая отображает информацию, основанную на узле в app.js.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...