Привет, ребята Я ладья 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, оно остается неизменным