2017-04-19 5 views
0

過去数時間にわたって解決できないような問題が発生しています。それに行きましょう。'ヌル' Mongooseに渡されました 'findOne()'

現在、特急の最新バージョンを使用して、私は私のroute.jsでのクエリでは、次のルート持っ

をマングース:次に

Note 
    .findOne({"user": req.body.user, "title": req.body.title, "subtitle": 
    req.body.subtitle}) 
    .exec(function (err, note) { 
     if (err) {handleError(err)}; 
     console.log(note._id); 
    }) 
    //same implementation as the in the mongoose docs 

を、私は次のようにクライアント側のスクリプトを持っていますAJAXリクエスト:

let settings = { 
     type: 'GET', 
     url: 'http://localhost:8080/note', 
     data: { 
      "user": userId, 
      "title": noteTitle, 
      "subtitle": noteSubtitle 
     }, 
     dataType: "json", 
     success: renderGetNoteTemplate 
    } 
    return $.ajax(settings); 

問題は、文書がデータベースと右のコレクションに存在しない場合でも、クエリの結果がnullである、ということです。そして、このサイトでスレッドを読み込んでコンソールにログした後、私はコンソールにクエリを記録し、これを見ました!

_conditions: { subtitle: null, title: null, user: null }

だから、渡される条件は明らかにnullを返しますこれは、nullです。今、ここにキャッチがあります。クエリのような条件で動作:

Note.findById(req.cookies.note).exec()

私が見ることができるの違いは、リクエストが身体から来ていないこと、です。私は

{"title": req.body.title}

最後に、私はちょうどクエリにそれを渡さず、コンソールにreq.body.titleなどを印刷するとき、値が来るようなものでAJAXリクエスト経由で条件を送ったので、上記のアップ。例えば、私はロミオとジュリエットをnoteTitleとして渡します。サーバーコンソールでそれを印刷すると、私は値Romeo And Julietを得ます。問題が発生する条件としてクエリに渡すとすぐです。

文字通りどこでも、私がモデルに名前を付けた方法などを見たことがあります。再びreq.body引数を条件に渡すと、null結果が返されます。

簡潔にするために、私はbodyParserが必要であることをコードには含めていませんでした。また、値がクエリ条件に入っていないときにも表示されます。

これらの引数をnullにする理由は何ですか?

おかげ

答えて

関連する問題