gpt4 book ai didi

node.js - 删除方法在 MongoDB 中不起作用。每当我删除凭证时,我都会收到 CastError

转载 作者:太空宇宙 更新时间:2023-11-04 01:26:56 26 4
gpt4 key购买 nike

错误消息:"message": "Cast to ObjectId failed for value\"{ [Function: ObjectID]\n

我尝试将 id 变量类型转换为 ObjectId。

凭证 Controller :

    module.exports.deleteVoucher = function(req, res, next) {

var lectionId = req.params._id;
var lectionId = require('mongodb').ObjectID;
if (!lectionId || lectionId === "") {
return res.json({ "success": false, "msg": "You need to send the ID of
the Offer", "error": err });
}

Voucher.findByIdAndRemove(lectionId, function (err, removed) {
if (err) {
return res.json({ "success": false, "msg": "Error while deleting
Offer", "error": err });
}

res.status(200).json({ "success": true, "msg": "Offer deleted" });
});

};

如何解决这个 objectId 问题?

这是我使用的模型:

这是index.js中的路由:

router.delete('/voucher/delete/:_id', voucherCtrl.deleteVoucher);

当我向 ObjectId 添加类型转换时,出现错误 500,内部服务器错误。

最佳答案

将字符串转换为 Mongoose 对象 ID

module.exports.deleteVoucher = function(req, res, next) {

var lectionId = req.params._id;


if (!lectionId || lectionId === "") {
return res.json({ "success": false, "msg": "You need to send the ID of the Offer", "error": err });
}

let lectionObjectId = mongoose.mongo.ObjectId(lectionId);
// or lectionObjectId= mongoose.Types.ObjectId(lectionId)

Voucher.remove({"_id":lectionObjectId}, function (err, removed) {
if (err){
return res.json({ "success": false, "msg": "Error while deleting Offer", "error": err });
}

res.status(200).json({ "success": true, "msg": "Offer deleted" });
});

};

关于node.js - 删除方法在 MongoDB 中不起作用。每当我删除凭证时,我都会收到 CastError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57194127/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com