node.js - MongoDB/Express API 不更新条目但返回 200
问题描述
我目前正在努力解决我的 React Web 应用程序中的一个问题,该问题不允许我更新 Mongo 数据库中的条目。我发布新文档并轻松获取所有条目,但是当我尝试更新其中的一部分时,我收到 200 响应,但文档从未更新。这是我的反应应用程序的电话:
fetch(API + this.state.project.pin, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: updatedFunctions
})
以及对应的快递代码
app.post('/:pin', (req, res) => {
db.collection('projects').update({pin:req.params}, {$set: {functions:req.body}}, function(err, count, result) {
if (err) return console.log(err)
console.log('saved to database')
res.redirect('/')
})
})
有谁知道这是错误的方向发送到哪里?根据我的逻辑,它应该将文档中的函数字段替换为具有“updatedFunctions”对象的匹配引脚。
解决方案
您的搜索条件似乎错误:
db.collection('projects').update({pin: req.params.pin}, [...]
pin
您的版本将在键中搜索对象。这现在搜索pin
键中的标量/字符串。
推荐阅读
- simulation - Assetto corsa 共享内存
- javascript - 如何在javascript中将拉丁数字转换为阿拉伯数字?
- angular - Eslint “不安全地返回 `any` 类型的值。”
- php - 如何在 laravel php 中添加更多复选框?
- mpi - MPI 是否有自己的方式将文件传输到远程节点?
- node.js - 节点异步函数NodeJs中的复活
- javascript - 管理员帐户上的 Facebook 登录警告问题
- python - 打印问题(嵌套循环)(初级)(可能)
- python - 模拟时生成的响应在 python 测试中不正确
- node.js - JEST 与 Supertest 获取实例已在使用错误 - 需要重新启动整个测试服务器