過去数時間にわたって解決できないような問題が発生しています。それに行きましょう。'ヌル' 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にする理由は何ですか?
おかげ
おかげで、それが問題でした。 – Bryan
ようこそ。 – luisenrike