【问题标题】:Deleting data using Id in mongodb is giving me CastError在 mongodb 中使用 Id 删除数据给了我 CastError
【发布时间】:2021-08-15 11:20:37
【问题描述】:

当我尝试使用 mongoose 'findByIdAndRemove' 函数删除 MongoDB 中的条目时,它给了我'Cast to ObjectId failed for value error'。

删除服务

routes.delete('/:id',async(req,res) =>{
Employee.findByIdAndRemove(req.params.id).then(employee=>{
    if(employee)
    {
        return res.status(200).json({success:true,message:"the employee entry is removed successfully"});
    } else{
        return res.status(404).json({success:false,message:"employee entry is not removed"});
    }
})
})

如何在“findByIdAndRemove”删除调用之前验证 id 以避免此问题?

【问题讨论】:

    标签: javascript node.js mongodb express mongoose


    【解决方案1】:

    我已通过将 mongoose 导入模块并在 使用函数mongoose.isValidObjectId(req.params.id)删除调用。

    const mongoose = require('mongoose');
    

    服务调用

    routes.delete('/:id',async(req,res) =>{
    if(mongoose.isValidObjectId(req.params.id))
    {
    Employee.findByIdAndRemove(req.params.id).then(employee =>{
        if(employee)
        {
            return res.status(200).json({success:true,message:"the employee entry removed successfully"});
        } else{
            return res.status(404).json({success:false,message:"employee entry is not removed"});
        }
    })
    }
    else {
        return res.status(400).send('Invalid Id');
    }
    })
    

    【讨论】:

      猜你喜欢
      • 2022-01-24
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多