Mongoose push() 函数没有将数据推入数组
Mongoose push() function isn't pushing the data into the array
我必须将产品数据推送到其中包含 store[] 数组的用户文档中,
我使用的代码如下
const db = require("../../auth/models");
const User = db.user
exports.addProduct = (req, res) => {
User.findOne({
username: req.body.username
}, function(err, user) {
if (err) {
res.status(500).send({ message: err })
}else{
console.log(user)
user.store.push({
id: req.body.id,
barcode: req.body.barcode,
productName : req.body.productName,
price : req.body.price,
quantity: req.body.quantity
})
}
} )
res.status(200).send({ message: "Product updated successfully!!"})
};
当我 console.log(user) 它给了我找到的用户数据并且 console.log(req) 给了我以表格形式给出的输入我无法解决这个问题.如果您需要解决问题,还有其他问题,请在评论中告诉我,我会 post 他们。提前谢谢你
您的代码运行得非常好:您在数据库中找到了您的用户,并且在其文档的 .store 数组中推送了一个新商店。但是您之后不会保存用户文档。您需要使用 Mongoose 的方法 .save() 并且仅在该操作成功完成后,发送您的回复:
User.findOne({
username: req.body.username
}, function(err, user) {
if (err) {
res.status(500).send({ message: err })
}else{
console.log(user)
user.store.push({
id: req.body.id,
barcode: req.body.barcode,
productName : req.body.productName,
price : req.body.price,
quantity: req.body.quantity
})
user.save(function(err, newUser) {
if (err) {
res.status(500).send({ message: err });
} else {
console.log(newUser);
res.status(200).send({ message: "Product updated successfully!!"})
}
})
}
})
我必须将产品数据推送到其中包含 store[] 数组的用户文档中, 我使用的代码如下
const db = require("../../auth/models");
const User = db.user
exports.addProduct = (req, res) => {
User.findOne({
username: req.body.username
}, function(err, user) {
if (err) {
res.status(500).send({ message: err })
}else{
console.log(user)
user.store.push({
id: req.body.id,
barcode: req.body.barcode,
productName : req.body.productName,
price : req.body.price,
quantity: req.body.quantity
})
}
} )
res.status(200).send({ message: "Product updated successfully!!"})
};
当我 console.log(user) 它给了我找到的用户数据并且 console.log(req) 给了我以表格形式给出的输入我无法解决这个问题.如果您需要解决问题,还有其他问题,请在评论中告诉我,我会 post 他们。提前谢谢你
您的代码运行得非常好:您在数据库中找到了您的用户,并且在其文档的 .store 数组中推送了一个新商店。但是您之后不会保存用户文档。您需要使用 Mongoose 的方法 .save() 并且仅在该操作成功完成后,发送您的回复:
User.findOne({
username: req.body.username
}, function(err, user) {
if (err) {
res.status(500).send({ message: err })
}else{
console.log(user)
user.store.push({
id: req.body.id,
barcode: req.body.barcode,
productName : req.body.productName,
price : req.body.price,
quantity: req.body.quantity
})
user.save(function(err, newUser) {
if (err) {
res.status(500).send({ message: err });
} else {
console.log(newUser);
res.status(200).send({ message: "Product updated successfully!!"})
}
})
}
})