Я делаю сайт, который является фиктивным форумом, где пользователь нажимает на тему форума, переходит на уникальную страницу .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.