Nodej仍然路由到mongodb中的已删除条目

时间:2016-08-18 20:30:24

标签: node.js mongodb express mongoose

我使用以下代码删除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不再存在?

1 个答案:

答案 0 :(得分:3)

只有找到学生才能发送给我们。根据你的逻辑,如果没有错误,它将显示'因为没有找到不是错误所以它将转到显示。

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');
    });
});