我在使用猫鼬更新文档时遇到问题。当我致电.update()
时,它不会更新文档。
index.html
<form method="POST" action="/updateItem?_method=PUT">
<input type="text" name="itemName" placeholder="Update Item" required/>
<input type="number" name="price" placeholder="price"/>
<input type="text" name="rarity" placeholder="rarity"/>
<input type="Submit" value="Submit"/>
</form>
app.js(服务器端)
app.put("/updateItem", (req, res)=>{
var updatedObj ={};
Object.entries(req.body).forEach(elem=>{
if(elem[0]!=="itemName"){
updatedObj[elem[0]] = elem[1];
};
});
console.log(updatedObj);
async function updateItem(){
const updatedItem = await Item.update({name:req.body.itemName}, {
$set: updatedObj
});
console.log(updatedItem);
res.redirect(`/searchItem?itemName=${req.body.itemName}`);
};
updateItem();
});
猫鼬模型:
const ItemSchema = new mongoose.Schema({
name: String
});
我还有另外两个与我的问题不完全相关的问题,因此回答它们不是很重要,但这将有很大帮助。
updatedObj
中加入了商品的名称,会发生什么?