簡體   English   中英

Nodej仍然路由到mongodb中的已刪除條目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM