PUT(既存のユーザーの名前を更新)しようとしているExpress JSアプリケーションがあります。私のスキーマは、ネストされた配列であり、次のようになります。このようになりますPUTを使用して、このユーザーを更新するExpress JS 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] } ] }
:ここ
は、コンソールメッセージです。
おかげ
UPDATE
_http_outgoing.js:335 スロー新しいError(。それらが送られた後、tはヘッダーを設定\ 'できます' '); ^ エラー:送信後にヘッダーを設定できません。
どうすればこの問題を解決できますか?
応答:
{
"message": "Cast to date failed for value \"7:00\" at path \"time\"",
"name": "CastError",
"type": "date",
"value": "7:00",
"path": "time"
}
あなたは私の更新をご覧ください。ありがとう – HitRefresh
このエラーは、クライアントに複数回応答を送信しようとしているときに発生します。あなたのルートで正しいことを確認してください。 – Sachin
findByIdのerrブロックをコンソール化します。それはエラーを投げるべきではありません。 – Sachin