Запрос PUT не обновляет MongoDB - PullRequest
0 голосов
/ 25 марта 2020

Привет, ребята Я ладья ie в программировании, и я застрял с этим ...

Я работаю над простым "приложением" ToDo на одной странице в узле, с пн go. Я могу добавить новое задание, удалить его, но когда я нажимаю один, чтобы завершить его, он не работает.

Простой мон goose схема

let todoSchema = new mongoose.Schema({
    name: {
        type: String,
        required: 'Název musí být uveden!'
    },
    completed: {
        type: Boolean,
        default: false
    },
    created_date: {
        type: Date,
        default: Date.now
    }
}) 

Маршрутизация через «помощников»

router.route("/")
    .get(helpers.getTodos)
    .post(helpers.createTodo);


router.route("/:todoId")
    .get(helpers.getTodo)
    .put(helpers.updateTodo)
    .delete(helpers.deleteTodo);

в помощниках Я получил функцию обновления:

exports.updateTodo = function(req, res) {
    db.Todo.findOneAndUpdate({
            id: req.params.todoId
        }, req.body, {
            new: true
        })
        .then(function(todo) {
            res.json(todo);
        })
        .catch(function(err) {
            res.send(err);
        });
};

Когда я отправляю запрос PUT почтальоном, обновление завершено в true, почтальон возвращает ноль ... Почтальон положил запрос image

Поскольку я новичок в этом, Я подумал, что с моим ajax что-то не так , но потом я попробовал Postman, который возвращает null, и я не знаю, в чем дело.

function updateTodo(todo) {
    let updateUrl = "/api/todos/" + todo.data("id");
    let isDone = !todo.data("completed");
    let updateData = {
        completed: isDone
    };

    $.ajax({
        method: "PUT",
        url: updateUrl,
        data: updateData
    }).then(function(updatedTodo) {
        todo.toggleClass("done");
        todo.data("completed", isDone);
    });
}

Когда я нажимаю на него, он меняет класс, терминал в моем коде VS показывает это:

Mongoose: todos._findAndModify(
{ id: '5e78a9ed4d68762accc14a7f' },
[], 
{ '$set': { completed: true } }, 
{ new: true, upsert: false, remove: false, projection: {} })

Но когда я перефразирую sh, оно остается неизменным

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