首页 > 解决方案 > 错误“DocumentNotFoundError:找不到查询文档”{_id:xxx}

问题描述

我克隆了对象“preventivo”,当我运行此代码时出现以下错误:(节点:24548)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:1):DocumentNotFoundError:找不到查询“{_id:5ff6110e27bbf25fe45ce2b5}”的文档在模型“preventivi”上我无法理解错误,你能帮我吗?我用节点+猫鼬+车把谢谢

//ROUTE CLONA PREVENTIVO
app.post('/preventivi/dbpreventivi/:id/clone' ,accessoSicuro,(req , res) =>{
    Preventivi.findOne({
      _id: req.params.id
  })  
  .then(preventivo => {    
      var newdoc = new Preventivi(preventivo);
      newdoc._id = mongoose.Types.ObjectId();
      delete newdoc.__v;
      newdoc.save();
      console.log(newdoc._id)
     
      req.flash("msg_successo", "Preventivo clonato correttamente");
      res.redirect("/preventivi/dbpreventivi");
  });
});
//fine route clona preventivo

html:

 <form  action="/preventivi/dbpreventivi/{{_id}}/clone?_method=POST" method="post">
            <input type="hidden" name="_method" value="POST">
            <input onclick="return confirm('Vuoi clonare il preventivo: {{cliente}} {{codice}} ?');"  type="submit" class="btn btn-warning btn-sm" value="Clona">
        </form>   

标签: node.jsmongoosehandlebars.js

解决方案


您可以尝试添加 newdoc.isNew = true :

//ROUTE CLONA PREVENTIVO
app.post('/preventivi/dbpreventivi/:id/clone' ,accessoSicuro,(req , res) =>{
    Preventivi.findOne({
      _id: req.params.id
  })  
  .then(preventivo => {    
      var newdoc = new Preventivi(preventivo);
      newdoc._id = mongoose.Types.ObjectId();
      newdoc.isNew = true;      
      newdoc.save();
      console.log(newdoc._id)     
      req.flash("msg_successo", "Preventivo clonato correttamente");
      res.redirect("/preventivi/dbpreventivi");
  });
});
//fine route clona preventivo

推荐阅读