2017-05-29 55 views
0

我一直在使用以下中間件,然後突然停止保存新文檔。在評論爲什麼貓鼬的文件不能保存?

var body = req.body; 

new ordersModel (body).save(function(err, newOrder, rowCount) { 
    if (err) throw err; 
    console.log(rowCount) // logs 1 

    updateEstimatedTime(newOrder); /* updateEstimatedTime runs but inside 
    it, trying to find this document newOrder returns null, 
    meaning it was never saved */ 
}); 

如果我嘗試像

var pleaseWork = new ordersModel (body); 
console.log(pleaseWork) // it dumps a loaded mongoose object 
pleaseWork.save(function(err, newOrder, rowCount) { 

進一步解釋爲什麼沒有得到它堅持?我也試着重裝服務器幾次與此頂部,以防萬一我正在服務器設置

ordersModel.find({}, 'customer', function (err, docs) { 
    if (err) throw err; 
    console.log(docs) 
}) 

過程中加載的集合,但它只是返回這個故障開始之前就已經存在的文件。我已經三重檢查了模型名稱,它在整個腳本中都是一樣的。代碼可能缺乏什麼? 我已經看到了一些在線的例子也是在

var pleaseWork = new ordersModel(); 
pleaseWork.foo = body.foo; 
pleaseWork.bar = body.bar; 
pleaseWork.john = body.john; 

console.log(pleaseWork) // dumps a loaded mongoose object 
pleaseWork.save(function(err, newOrder, rowCount) { 

現在該地區的建議什麼的,這不適合我是可行的; ordersModel表有10多列 - 在模型的構造函數中刪除正文對象已經足夠清晰,並且在程序運行的最後一次運行。

雖然我不認爲這是必要的,但如果你需要看我的模型,我可以提供。如果您需要部署和測試,還需要完整的服務器代碼。

+1

'mongoose.set(「調試」,真正的); '看看'.save()'執行時發生了什麼。 –

+1

如果是mongo,它不是桌子,它是一個集合。它不是一個列,而是一個文檔屬性,因爲它是一個面向文檔的數據庫而不是一個關係數據庫。 – arboreal84

+0

@NeilLunn應該在mongoose.createConnection賦值之前出現還是我可以隨意放置它? –

回答

1

感謝@ NeilLunn的評論和我後來的debug data我在第10行注意到我正在刪除文檔,其中包括這個新訂單。這條線是不是在中間件,但在代理服務器初始化變量

ordersModel.remove({estimatedDeliveryTime: null}).exec() 

我/我用它來無效訂單淨化收集

+0

我會給你一個回饋,並至少解釋問題的根源。 – ippi

+0

@ippi非常感謝你。 –