В настоящее время я изучаю https://thinkster.io/mean-stack-tutorial/, но я озадачен определением маршрута для дочернего элемента. Например, в следующем ...Экспресс: ссылка на родителя в определении маршрута для ребенка
// create a new comment
router.post('/posts/:post/comments', function(req, res, next) {
var comment = new Comment(req.body);
comment.post = req.post;
comment.save(function(err, comment){
if(err){ return next(err); }
req.post.comments.push(comment);
req.post.save(function(err, post) {
if(err){ return next(err); }
res.json(comment);
});
});
});
... мы пытаемся определить маршрут для добавления нового комментария для конкретной должности. Как вы можете видеть, мы должны связать родитель с комментарием ...
comment.post = req.post;
... и мы также должны, по понятным причинам, за исключением родителя в комментарии Сохранить функции. Однако, когда приходит к обновлению комментария (т.е. увеличение upvotes для комментария) мы только должны сделать ...
// upvote a comment
router.put('/posts/:post/comments/:comment/upvote', function(req, res, next) {
req.comment.upvote(function(err, comment){
if (err) { return next(err); }
res.json(comment);
});
});
... где «upvote» является метод пользовательской схемы ...
CommentSchema.methods.upvote = function(cb) {
this.upvotes += 1;
this.save(cb);
};
... почему мы не обязаны ссылаться на родительский объект 'post' здесь вообще? Я имею в виду, как система точно знает, какой комментарий для загрузки? Я понимаю, что «post» относится к родительскому сообщению, однако мы даже не ссылаемся на предварительно загруженный родительский элемент в методе ... так как он используется? Правильный набор комментариев автоматически загружается из предварительно загруженного родительского объекта post без необходимости делать это явно?
Любое руководство будет оценено по достоинству.