jquery - PUT 请求不更新 MongoDB
问题描述
大家好 ,我是编程新手,我被这个困住了......
我正在使用 mongo 在节点中处理简单的单页 ToDo“应用程序”。我可以添加新的 ToDo,删除它,但是当我单击一个完成它时,它不起作用。
简单的猫鼬模式
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);
});
};
当我使用 Postman 发送 PUT 请求时,将完成更新为 true,postman 返回 null ... Postman put request 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 Code 中的终端显示如下:
Mongoose: todos._findAndModify(
{ id: '5e78a9ed4d68762accc14a7f' },
[],
{ '$set': { completed: true } },
{ new: true, upsert: false, remove: false, projection: {} })
但是当我刷新时,它没有改变
解决方案
推荐阅读
- apache-spark - 如何在 pyspark 数据帧读取方法中包含分区列
- sql-server - 将变量附加到 alter 命令的语法
- python - 我正在使用 Tkinter 为外部程序编写 UI。如何将任何打印语句重定向到 tkinter 中的小部件?几乎就像一个实时日志
- excel - 某些计算机未完全加载 Excel vsto 插件
- twitter - 如何使用 Twitter API 检索一个国家/地区的 N 条最受欢迎的推文?
- c# - C#如何列出
接受列表 但不是 IList 创建集合时? - java - 关于使用eclipse在ubuntu最新版本中的java sql连接
- python - 如何更改此数据框的索引?
- c - C程序执行后立即退出,但它有一个while(1)循环
- asp.net-core-3.1 - ASP.NET Core 3.1 - 使用 .UseUrls() 设置应用程序 url 时“站点无法提供安全连接”