【问题标题】:ObjectId is not defined while deleting from mongoDb using meanstack使用 meanstack 从 mongoDb 中删除时未定义 ObjectId
【发布时间】:2018-01-17 23:46:02
【问题描述】:

我正在尝试通过使用带有 Angular 4 的 MEAN STACK 从 MOngoDb 中删除条目。(这项技术的新手)

打字稿:

deleteitem(id){
  let deleteresult;
  let itemid = id;
  this.dataService.deleteitem(itemid)
  .subscribe(res =>deleteresult =res,
  err => this.apiError = err,
  )
};

数据服务:

deleteitem(itemid): Observable<any>{
      let data =new URLSearchParams();
      data.set('deleteId', itemid);
      console.log(data.toString());
      return this.http.post(URL, data.toString())
      .map(res=> res.json())
      .catch((error:any) => Observable.throw('Server Error To delete the item'));
       }

Router.js

const ObjectID = require('mongodb').ObjectID; 
 router.post('/deleteitem', function(req, res){
      MongoClient.connect('URL',function(err, client){
      if (err) throw err;
      var myDB = client.db('DbName');
       var collection = myDB.collection('collectionName');
       console.log(req.body);       
       //var objectId = collection.getObjectId();
       collection.remove({_id: ObjectId(req.body.deleteId), function(err, result)
      {
        res.send((result==1)?{msg:deleted} : {msg:"error:"+ err});
      }});
    })
    })

错误:

ObjectId 未定义。

console.log(req.body) 也给出了一个“{}”值。不知道为什么。 但是 console.log(data.toString());在数据服务中给出了要从 MongoDb 中删除的预期 _id 的值。

【问题讨论】:

    标签: mongodb angular express mean-stack


    【解决方案1】:

    尝试在

    中使用data而不是data.toString()
    return this.http.post(URL, data.toString())
    

    这将在 console.log(req.body) 中为您提供输出值;

    另外,尝试替换下面的代码行

    collection.remove({_id: ObjectId(req.body.deleteId), function(err, result)
    

    collection.deleteOne({_id: new mongodb.ObjectID(req.body.deleteId)}, function(err, result)
    

    你需要在这里创建一个新的 mongodb 实例。 希望这行得通。

    【讨论】:

      猜你喜欢
      • 2017-09-09
      • 2021-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-12
      • 1970-01-01
      • 2015-05-09
      相关资源
      最近更新 更多