В качестве личного проекта я пытаюсь создать социальный медиа-сайт для коллекционеров плюшевых мишек.Я бы хотел, чтобы пользователи могли создавать «коллекционные» страницы, которые они могут заполнять индивидуальными страницами профиля для каждого из своих медведей.Наконец, я хотел бы, чтобы другие пользователи могли комментировать как страницу коллекции, так и отдельные страницы профиля.
Однако я сталкиваюсь с ошибкой в маршруте "/ new" для комментариев к индивидуальному пользователю.страницы профиля.Я не могу найти идентификатор родительской коллекции.
Ниже приведен код, с которым я работаю.Я начинаю с поиска идентификатора для коллекции, затем пытаюсь получить идентификатор для медведя (страница индивидуального профиля).Тем не менее, процесс продолжает ловиться на первом шаге.
var express = require("express");
var router = express.Router({mergeParams: true});
var Bear = require("../models/bear");
var Comment = require("../models/comment");
var Collection = require("../models/collection");
var middleware = require("../middleware");
//comments new
router.get("/new", middleware.isLoggedIn, function(req, res) {
Collection.findById(req.params.id, function(err, foundCollection) {
if(err || !foundCollection){
req.flash("error", "Collection not found");
return res.redirect("back");
}
Bear.findById(req.params.bear_id, function(err, foundBear) {
if(err){
res.redirect("back");
} else {
res.render("bcomments/new", {collection_id: req.params.id, bear: foundBear, collection: foundCollection});
}
});
});
});
//bcomments create
router.post("/", middleware.isLoggedIn, function(req, res){
Collection.findById(req.params.id, function(err, foundCollection) {
if(err || !foundCollection){
req.flash("error", "Collection not found");
return res.redirect("back");
}
//look up bear using id
Bear.findById(req.params.id, function(err, foundBear){
if(err){
console.log(err);
res.redirect("/bears" + bear._id);
} else {
//create new comment
Comment.create(req.body.comment, function(err, comment){
if(err){
req.flash("error", "Something went wrong");
console.log(err);
} else {
//add username and id to comment
comment.author.id = req.user._id;
comment.author.username = req.user.username;
//save comment
comment.save();
//connect new comment to bear
bear.comments.push(comment);
bear.save();
//redirect bear show page
req.flash("success", "Successfully added comment");
res.redirect("/collections/" + foundCollection._id + "/bears/" + foundBear._id);
}
});
}
});
});
});
Таким образом, вместо рендеринга новой формы комментария, он выдает «нулевую» ошибку и перенаправляет обратно на первый оператор if.
Если кто-нибудь может помочь мне разобраться в этом, я был бы чрезвычайно благодарен.Спасибо.