最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

仅更新以JSON发送的字段

IT培训 admin 13浏览 0评论

仅更新以JSON发送的字段

我有这段代码:

// Update a card    
router.patch('/:id', async (req, res) => {    
    try {    
        const card = await Card.findByIdAndUpdate(        
            {_id: req.params.id},    
            { $set: {    
                title: req.body.title,    
                description: req.body.description}},    
            { new: true });    
        res.json(card);    
    } catch (error) {    
        res.status(404).json({message: error});    
    }    
}); 

我希望能够分别更新标题和描述,这意味着如果我发送仅包含标题的JSON,则仅标题将被更新,问题是如果我使用上面的代码这样做,因为描述丢失,说明将更新为null。有没有办法只更新我在JSON中发送的内容?

回答如下:

您可以使用传播运算符动态构建更新:

let req = { body: { title: "title" } }
let update = { $set: { ...req.body } }
console.log(update);

仅更新以JSON发送的字段

我有这段代码:

// Update a card    
router.patch('/:id', async (req, res) => {    
    try {    
        const card = await Card.findByIdAndUpdate(        
            {_id: req.params.id},    
            { $set: {    
                title: req.body.title,    
                description: req.body.description}},    
            { new: true });    
        res.json(card);    
    } catch (error) {    
        res.status(404).json({message: error});    
    }    
}); 

我希望能够分别更新标题和描述,这意味着如果我发送仅包含标题的JSON,则仅标题将被更新,问题是如果我使用上面的代码这样做,因为描述丢失,说明将更新为null。有没有办法只更新我在JSON中发送的内容?

回答如下:

您可以使用传播运算符动态构建更新:

let req = { body: { title: "title" } }
let update = { $set: { ...req.body } }
console.log(update);

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论