无法在用户愿望清单键中附加多个项目
Posted
技术标签:
【中文标题】无法在用户愿望清单键中附加多个项目【英文标题】:Unable to append multiple items inside user wishlist key 【发布时间】:2022-01-20 07:24:56 【问题描述】:这是我的前端代码。最初我从令牌中获取用户,令牌存在于本地存储中,然后是更新用户的代码和获取更新数据库中的用户的代码。
let token = JSON.parse (localStorage.getItem ('token'));
async function addtoWishlist (id)
let temp = await findId ();
let user = await temp.json ();
let wishlistArray = user.wishItems;
console.log ('wishlistArray:', wishlistArray);
wishlistArray.push (id);
let dts =
wishItems: wishlistArray,
;
let data_to_send = JSON.stringify (dts);
fetch (`http://localhost:2233/*/user/add`,
method: 'PATCH',
body: data_to_send,
headers:
'Content-Type': 'application/json',
Authorization: `Bearer $token`,
,
)
.then (k =>
return k.json ();
)
.then (res =>
console.log (res);
)
.catch (err =>
console.log (err);
);
async function findId ()
let user = await fetch (`http://localhost:2233/*/user`,
headers:
'Content-Type': 'application/json',
Authorization: `Bearer $token`,
,
);
return user;
控制器代码
app.get ('/*/user', authenticate, async (req, res) =>
const user = req.user.user;
return res.send (user);
);
app.patch ('/*/user/add', authenticate, async (req, res) =>
try
console.log ('inside patch');
let user = req.user.user;
console.log ('user:', user);
console.log (req.body);
user = await User.findByIdAndUpdate (user._id, req.body,
new: true,
)
.lean ()
.exec ();
console.log ('after-user', user);
return res.send (user);
catch (e)
return res.send (e.message);
);
用户架构如下所示
const userSchema = new Schema (
fullName: type: String, required: false,
email: type: String, required: true,
password: type: String, required: true,
username: type: String, required: true,
mobile: type: Number, required: true,
description: type: String, required: true,
bagItems: [
productId:
type: Schema.Types.ObjectId,
ref: 'product',
required: false,
,
count: type: Number, required: false,
,
],
wishItems: [
type: Schema.Types.ObjectId,
ref: 'product',
,
],
,
versionKey: false,
timestamps: true,
);
** 每当我将项目添加到愿望清单时,它都会替换已经存在的项目...................... ..................................................... ..................................................... ..................................................... ..................................................... ..................................................... ....**
【问题讨论】:
请修剪您的代码,以便更容易找到您的问题。请按照以下指南创建minimal reproducible example。 【参考方案1】:你需要使用$push operator
user = await User.findByIdAndUpdate (user._id, $push: req.body , ...
确保req.body
仅具有wishItems
属性,没有别的。
【讨论】:
非常感谢,现在可以使用了。 酷。随意接受我的回答;)以上是关于无法在用户愿望清单键中附加多个项目的主要内容,如果未能解决你的问题,请参考以下文章
如果项目已经在 magento 的愿望清单中,则隐藏愿望清单按钮
UITableViewCell 中的 Swift UICollectionView 不起作用