gpt4 book ai didi

angularjs - mongoose/mongodb 不会用 PUT 更新

转载 作者:可可西里 更新时间:2023-11-01 09:58:57 24 4
gpt4 key购买 nike

我目前是 Express 和 failure 方面的学生。

我目前的头痛是 PUT 不是 PUT-ting。我的应用程序有一大堆数据,我需要在用户第一次登录时上传这些数据。之后我想它会更快,因为我可以只上传更改过的内容。这个理论不太行得通。

步骤是:

  1. 用户首次登录,通过身份验证
  2. 应用程序在 Values 模式中创建一个新条目,其中只有必填字段
  3. 应用翻转用户模式中的开关以显示创建的值
  4. App 然后将其余值放入该现有架构。

我将 2 和 4 分成两部分,因为当我把它分成两部分时,出于某种原因,Mongoose 开始发出嘶嘶声。除了现在,它实际上并没有在第 4 步放置任何东西,甚至在用户编辑它时(通过应用程序中的表单)。就好像它停止了倾听,或者什么的。

这是值架构的样子(因为它太大而被截断):

    var ValueSchema = new Schema({
user_id: {
type: String,
required: true,
unique: true
},
base: [{
type: String,
required: true
}],
value1: [ String ],
value2: [ String ],
value3: [ String ],
value4: [ String ]
});

这是 GETting 和 PUTting 的部分:

    // ------------------ FORM VALUES
router.route('/values/:user_id')
// create
.post(function(req, res) {
var task = req.body;
var value = new Value(task);
value.save(function(err) {
if (err) {
res.json(err);
} else {
res.write("success");
}
});
})
// update
.put(function(req, res) {
var values = req.body;
var user_id = req.params.user_id;
Value.update({user_id: user_id}, function(err, values) {
if (!err) {
res.json("okay");
} else {
res.write("fail");
}
});
})
// view
.get(function(req, res) {
var id = req.params.user_id;
Value.find({'user_id':id}, function(err, value) {
if (!err) {
res.send(value);
} else {
res.write("fail");
}
});
})
});

由于我仍然无法弄清楚的原因,第 2 步需要永远。最重要的是,Firefox 发送没有 token 的消息,但 http 调用在“网络”选项卡和服务器本身的输出中显示为成功。这是其中一个 http 调用:

        return $http({
method: 'PUT',
url: '/api/values/' + userId,
data: values,
headers: {
'x-access-token': token
}
})
.then(function (response) {
// chained to next step
// etc

对我来说看起来像教科书,但是当我在任何 PUT 之后 checkin Postman 时,值条目看起来像这样:

    [
{
"_id": "56513f140dab13e932682cf2",
"user_id": "5651f7454cd0c2543ca5202f",
"__v": 0,
"value1": [],
"value2": [],
"value3": [],
"value4": []
}
]

在第一次 POST 之后,它根本就没有更新。疯狂的是我可以更新其他两个模式并且一切正常,并且它们与 Value 模式具有相同的模式。帮助!我错过了什么?

提前致谢!

最佳答案

你的 update() 方法缺少更新文档:

// update
.put(function(req, res) {
var values = req.body;
var user_id = req.params.user_id;
Value.update({user_id: user_id}, values, function(err, values) {
if (!err) {
res.json("okay");
} else {
res.write("fail");
}
});
})

关于angularjs - mongoose/mongodb 不会用 PUT 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33859055/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com