0
我目前正在學習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);
});
});
...其中「給予好評」是一個自定義模式的方法...
CommentSchema.methods.upvote = function(cb) {
this.upvotes += 1;
this.save(cb);
};
...爲什麼我們不需要在這裏引用父對象'post'?我的意思是系統如何確切地知道要加載哪個評論?我明白':post'是指父級職位,但是,我們甚至沒有在方法中引用預加載的父級...因此如何使用它?是否從預加載的後父對象中自動加載了正確的註釋集,而不需要明確地執行此操作?
任何指導,將不勝感激。