Обновляйте только поля, отправленные в JSON - PullRequest
1 голос
/ 09 мая 2020

У меня есть этот фрагмент кода:

// 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, содержащий только заголовок, то только заголовок будет обновлено, проблема в том, что если я сделаю это с помощью приведенного выше кода, поскольку описание отсутствует, то описание будет обновлено до нуля. Есть ли способ обновить только то, что я отправляю в JSON?

1 Ответ

0 голосов
/ 09 мая 2020

В конце концов, я использовал этот фрагмент кода для решения проблемы:

const $set = {};
    if(req.body.name)
        $set.name = req.body.name;
    if(req.body.background)
        $set.background = req.body.background;
    const board = await Board.findByIdAndUpdate(
        {_id: req.params.id},
        { $set },
        { new: true });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...