kl0*_*l02 2 mongoose mongodb express angularjs
我目前是Express和失败方式的学生.
我目前的头痛是PUT不是PUT-ting.我的应用程序有一个我需要在用户第一次登录时上传的数据.我想在之后它会更快,因为我只能上传已更改的内容.这个理论并没有那么顺利.
步骤是:
我把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 ]
});
Run Code Online (Sandbox Code Playgroud)
这是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");
}
});
})
});
Run Code Online (Sandbox Code Playgroud)
由于我仍然无法弄清楚的原因,第2步需要永远.最重要的是,Firefox会发送没有令牌的消息,但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
Run Code Online (Sandbox Code Playgroud)
看我的教科书,但是当我在任何PUT之后检查Postman时,值条目看起来像这样:
[
{
"_id": "56513f140dab13e932682cf2",
"user_id": "5651f7454cd0c2543ca5202f",
"__v": 0,
"value1": [],
"value2": [],
"value3": [],
"value4": []
}
]
Run Code Online (Sandbox Code Playgroud)
在第一次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");
}
});
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1670 次 |
| 最近记录: |