[英]Nodejs still routing to a deleted entry in mongodb
我使用以下代碼刪除mongodb中的條目
router.delete('/:id', function(req, res) {
Student.findByIdAndRemove(req.params.id, function(err, student) {
if(err) {
console.log(err);
return res.redirect('/students/' + req.params.id);
}
console.log('Deleted student.');
console.log(student);
res.redirect('/students');
});
});
刪除通過,因為我不再在數據庫中看到它; 但是,如果我訪問舊頁面/ students /:id它會通過而不是重定向回來,我收到一個錯誤,因為我試圖在null對象上使用方法。
router.get('/:id', function(req, res) {
Student.findById(req.params.id, function(err, foundStudent) {
if(err) {
console.log(err);
return res.redirect('/students');
}
res.render('pages/students/show', { student : foundStudent });
});
});
如何讓它知道該ID不再存在?
只有找到學生才能發送給我們。 根據你的邏輯,如果沒有錯誤,它將被“顯示”,因為未找到不是錯誤所以它將轉到顯示。
router.get('/:id', function(req, res) {
Student.findById(req.params.id, function(err, foundStudent) {
if(err) {
console.log(err);
return res.redirect('/students');
}
if(foundStudent){
res.render('pages/students/show', { student : foundStudent });
}
return res.redirect('/students');
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.