0
我嘗試通過名稱找到一個項目,然後更新表並返回更新的結果,但返回不起作用。我的代碼:爲什麼不能在Mongoose findOne方法中工作?
class addSongsToArtist {
constructor(artistName) {
Artist.findOne({
name: artistName
}).exec((err, data) => {
if (err) console.log(err);
data.name = 'updated name'
data.save();
return data // * not work
});
}
}
進入exec方法我看到正確的結果數據,併爲蒙戈控制檯結果保存。但返回不起作用。我試圖保存更改到外部變量並返回Promise中的結果,但它不起作用。 爲什麼它不起作用?
「不工作」是什麼意思?這是一個異步方法,那麼你如何接收'data'的值來使用它?你能分享這段代碼嗎? –
'data.save'是I/O,所以需要時間。在貓鼬玩它之前,你什麼也沒有返回。嘗試'data.save(function(err){return data})' –
您需要了解js中的異步行爲。看看http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call –