【发布时间】:2016-10-11 01:29:50
【问题描述】:
我有一个 express JS 应用程序,我正在尝试 PUT(更新现有用户的名称)。我的架构是嵌套数组,如下所示:
我使用 PUT 更新此用户的代码如下所示:
router.route('/sensors_update/:_id/')
.put(function (req, res) {
console.log("inside update put")
User.findById(req.params._id, function(err, user) {
if (err)
res.send(err);
console.log(user);
user.name = req.body.name;
console.log("User val is" + user);
user.save();
});
});
我能够清楚地看到 用户名 正在使用 JS 控制台进行更新。但是我在保存这个用户对象时遇到了问题。我想这应该是因为我有一个嵌套模式。我的假设对吗?关于如何使用嵌套数组保存用户对象的任何建议。
这是控制台消息:
inside update put
{ _id: 'Manasa',
name: 'Manasa Sub',
__v: 0,
sensors:
[ { sensor_name: 'ras',
_id: 57da0a4bf3884d1fb2234c74,
measurements: [Object] } ] }
User val is{ _id: 'Manasa',
name: 'Manas Sub',
__v: 0,
sensors:
[ { sensor_name: 'ras',
_id: 57da0a4bf3884d1fb2234c74,
measurements: [Object] } ] }
我想知道为什么在尝试更新和保存用户名时访问嵌套数组。
谢谢
更新
_http_outgoing.js:335 throw new Error('Can\'t set headers after they are sent.'); ^ 错误:发送后无法设置标头。
我该如何解决这个问题?
回应:
{
"message": "Cast to date failed for value \"7:00\" at path \"time\"",
"name": "CastError",
"type": "date",
"value": "7:00",
"path": "time"
}
【问题讨论】:
标签: javascript mongodb rest express