我創建了一個洗掉 api,它可以洗掉 mongoose atlas 中的專案,但是當我添加profile.save()以獲取所有當前專案時它有 404 錯誤。
Node.js 代碼:
router.delete('/delete/:id',(req, res) => {
Profile.findOneAndDelete({_id:req.params.id}).then(profile => {
// res.json(profile) this line works to return the deleted item but I want to use below line to return all data.
profile.save().then(profiles => res.json(profiles)).catch(err=>res.status(404).json(err))
})
.catch(err => res.status(404).json(err))
})
結果:
{
"result": {
"$where": {
"_id": "61e7b297f880e56c8f6f6b2e"
},
"matchedCount": 0
},
"numAffected": 0,
"filter": {
"_id": "61e7b297f880e56c8f6f6b2e"
},
"query": {
"_id": "61e7b297f880e56c8f6f6b2e"
}
}
我注意到在某些教程中添加該行時它可以作業,但在我的情況下它失敗了。
uj5u.com熱心網友回復:
您需要使用find查詢來回傳所有資料。save函式用于更新或save專案到資料庫。
save() 方法回傳一個承諾。如果 save() 成功,則 Promise 決議為已保存的檔案。
洗掉檔案時,它僅回傳已洗掉的用戶。如果您想再次保存它,您需要創建一個模型并將值放在那里并呼叫保存函式。
我添加 profile.save() 以獲取所有當前專案。它只回傳保存的檔案,不會回傳集合中的所有檔案。
如果要獲取所有組態檔資料,請呼叫find查詢。
router.delete('/delete/:id', async (req, res) => {
try {
const deletedProfile = await Profile.findOneAndDelete({_id:req.params.id}); // conatins only deleted profile
const getAllProfile = await Profile.find({}); // get all profile
// now you can return all the profiles
} catch (error) {
res.status(404).json(error);
}
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/417622.html
標籤:
