我遇到了一個問題,我似乎無法解決過去幾個小時。讓我們開始吧。'null'進入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);
現在的問題是,即使在一個文檔中的數據庫和右組確實存在,查詢結果爲空。在經過幾個小時的閱讀本網站的線程並記錄到控制檯之後,我決定將查詢記錄到控制檯,並看到了這個!
_conditions: { subtitle: null, title: null, user: null }
所以傳遞的條件爲空,這顯然將返回null。現在,這是抓住。該查詢與如條件下工作:
Note.findById(req.cookies.note).exec()
,我可以看到存在差異,該請求不是來自身體的到來。所以我上面通過Ajax請求發送的條件與類似
{"title": req.body.title}
最後,當我剛打印req.body.title等控制檯沒有它傳遞到查詢,值來向上。例如,我將羅密歐與朱麗葉作爲noteTitle傳入,當我在服務器控制檯上打印它時,我得到了Romeo And Juliet的價值。只要我將它傳遞給查詢作爲出現問題的條件。
字面上看起來無處不在,尤其是我給模型命名的方式等等。再次,當我將req.body參數傳入條件時,我得到空結果。
此外,爲了簡潔起見,我沒有在代碼中包含bodyParser,所以當它沒有進入查詢條件時,它們會顯示出來。
什麼使這些參數變爲空的任何想法?
感謝
謝謝,這就是問題所在。 – Bryan
不客氣。 – luisenrike