findByIdAndUpdate не обновляется - PullRequest
0 голосов
/ 18 февраля 2020

Когда я проверяю свой маршрут обновления в почтальоне, сервер выдает мне код состояния 200, но в моей базе данных ничего не обновляется, почему он не обновляется?

exports.updateTodos = async (req, res, next)=>{
    try{
        const update = await Todos.findByIdAndUpdate({_id: req.params.id});
        res.send({
            success: true,
            todosData: update,
            Msg: "successfully updated!"
        }).status(200);
    }catch(error){
        res.send({
            success: false,
            Msg: "There was A problem updating to todos",
            err: error
        });
    }
}

//This is my schema data
const schema = mongoose.Schema({
    task: {
        type: String,
        maxlength: 300,
        require: true
    },
    taskname: {
        type: String,
        require: true,
        maxlength: 14
    },
    createAt: {
        type: Date,
        default: Date.now
    }
});

это то, как я вызываю updateTodos в моем роутер

router.put('/:id', updateTodos);

1 Ответ

0 голосов
/ 18 февраля 2020

Вы в основном не устанавливаете ничего для обновления. Посмотрите, как это делается ниже


exports.updateTodos = async (req, res, next)=>{
    try{
        const update = await Todos.findByIdAndUpdate({_id: req.params.id}, {$set: req.body});
        res.send({
            success: true,
            todosData: update,
            Msg: "successfully updated!"
        }).status(200);
    }catch(error){
        res.send({
            success: false,
            Msg: "There was A problem updating to todos",
            err: error
        });
    }
}

Вы также можете явно выбрать, что обновлять следующим образом:


exports.updateTodos = async (req, res, next)=>{
    try{
        const update = await Todos.findByIdAndUpdate({_id: req.params.id}, 
                            {$set: {taskname: req.body.taskname}});
        res.send({
            success: true,
            todosData: update,
            Msg: "successfully updated!"
        }).status(200);
    }catch(error){
        res.send({
            success: false,
            Msg: "There was A problem updating to todos",
            err: error
        });
    }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...