【发布时间】:2021-01-03 08:28:07
【问题描述】:
所以我有以下类型的模式:
board: {
id:
createdBy:
boardlist: [
{id, title: list1, cards: []}
{id, title: list2, cards: []}
]
我想在特定列表 id 的卡片数组中推送一张卡片
这是我的代码:
router.put("/add-card/:id", auth, boardAuth, async (req, res) => {
const listId = req.params.id;
const board = await Board.findOne({ _id: req.board._id });
if (!board) return res.status(404).send("no such board");
const list = await List.findOne({ _id: listId });
if (!list) return res.status(404).send("List not found");
const card = new Card({
text: req.body.text,
});
list.cards.push(task);
board.boardLists.map((list) => {
if (listId.toString() === list._id.toString()) {
list.cards.push(card);
} else {
null;
}
});
await board.save();
await list.save();
res.send(board);
});
问题是,当我这样做时,它会一次将卡添加到该阵列中,而在下一次我这样做时,它就消失了,并用新的替换了旧的。 如果我推卡“一”,它会在我发送时出现在数组中,而在下一次我推“二”时,我看不到最后一个“一”,看起来我只有 1 个项目。
【问题讨论】:
标签: node.js reactjs express mongoose