2017-07-19 20 views
0

mongodbから情報を作成/削除するための基本フォームを使用しています。mongoose findByIdAndDelete/findOneAndRemove削除しない

 Cast to ObjectId failed for value " 596f5d7770f6f0d0c2767d3f" at 
path "_id" for model "dwb_notes" 

私は周りを見回してきたと回答のほとんどは私が話すにはここを参照してください:私は、フォームを送信しますが、私はこのエラーを得続けるレコードを削除しようとするとき、私は十分に細かいレコードを作成することができます 実行しているアプリケーションの複数のインスタンスや、同じポートなどで動作する複数のプログラムや、私の問題に直接関係のないさまざまなソリューション(私は思う)がありますが、私はそれらを無駄に試しました。

私はテストのために現在DBに1レコードしか持っていません。ここに私のモデルである:

別のHTMLフォームを使用して
function todoNotesModel(){ 
    const mongoose = require("mongoose"); 
    const Schema = mongoose.Schema; 

    const NotesSchema = new Schema({ 
     todoCompany : String, 
     todoIsFor : String, 
     todoPostedBy : String, 
     todoCompleted : Boolean, 
     todoPriority : String, 
     todoMessages : Array, 
     todoTitle : String,  
     todoDate : String 
    }); 

    const NotesModel = mongoose.model("dwb_notes", NotesSchema); 

    return NotesModel; 
} 

module.exports = todoNotesModel(); 

、負荷に、削除ボタンは、文書ID (この場合はその596f5d7770f6f0d0c2767d3f)が割り当てられ、削除ボタンに追加します。私が実行したときに

app.delete("/notesapi/:tabID", (request, response) => { 
    NotesModel.findByIdAndRemove(request.params.tabID, (error, data)=>{ 
     if(error){ 
      console.log("error in deleting yo!"); 
      throw error; 
     } else { 
      console.log("data all gone and deleted yo"); 
      response.status(204); 

     } 
    }); 
}); 

:提出し、このIDを経由して、削除ルートに渡されるの db.dwb_notes.find().pretty()

私は取り戻す:

"_id" : ObjectId("596f5d7770f6f0d0c2767d3f"), 
"todoCompany" : "", 
"todoIsFor" : "", 
"todoPostedBy" : "LOGGED IN USER HERE", 
"todoCompleted" : false, 
"todoPriority" : "green", 
"todoTitle" : "", 
"todoDate" : "Wed Jul 19 2017 09:23:56 GMT-0400 (Eastern Daylight Time)", 
"todoMessages" : [ 
     "" 
], 
"__v" : 0 

私はドンように、その存在を示しています」なぜこのエラーが発生しているのか理解できません。 アイデア

+1

ObjectID文字列を切り捨てようとしましたか?あなたのエラーでは、ObjectID文字列にスペースがあるように見えます。 –

+0

Howdy Zander、「切り捨てる」とはどういう意味ですか? – somdow

+1

申し訳ありませんが、スティップ:http://php.net/manual/en/function.trim.php –

答えて

2

あなたのエラーがMongoID文字列に余分なスペースを表示しているようです。無効なMongoID文字列を作成しています。

あなたは使用することができます。string.trim()Documentation

を文字列の前または後にスペースを削除するには。

+0

ありがとう、これは本当に役立った。とても小さいもの。ザンダー、多分あなたは私がこの他の問題で私を助けることができます。私はここにある数字を見つけることができません:https://stackoverflow.com/questions/45130054/ajax-network-error-even-though-it-passes-the -情報 – somdow

関連する問題