2016-05-21 3 views
0

私は/ updateルートに投稿しています。findOneAndUpdateの問題

この私が、端末での印刷私はconsole.log()の項目を見ることができるので働き、ここを参照してください:

enter image description here

をしかし、私のコードは完全にものを見つけると機能をアップデート無視しているようです。

私がしたいことは、ルートへのputリクエストを実行して、ポストを更新することです。ここで

は私のAJAX要求である:

$.ajax({ 
    url: "/admin-panel/update/", 
    method: "PUT", 
    data: $data, 
    success: function(data, status) { 
     alert("Data: " + data + "\nStatus: " + status); 
     window.location.href = "/admin-panel/update/"; 
    }, 
    error: function(err) { 
     if (err) throw err; 
    } 
}); 

そして、ここでは、バックエンドでのPUTリクエストハンドラです:

router.put("/:action", function(req, res, next) { 
    if (req.params.action.toLowerCase() == "update") { 

     console.log("started") 

     var timelineItems = require("../schemas/timelineItems.js"); 

     console.log("timeline items model inserted:", timelineItems) 

     timelineItems.findOneAndUpdate({_id: req.body.id}, function (err, post) { 
      if (err) { 
       next(err); 
      } 

      console.log("post:", post) 

      res.send("item updated!"); 
     }); 

     console.log("should be done"); 

    } else { 
     var err = new Error('Access forbidden, please login!'); 
     err.status = 403; 
     next(err); 
    } 
}); 

私は右のデータは、PUTリクエストで実行されていることを知っているとしてもビューの$ dataの値とバックエンドのreq.bodyの値もチェックしたので、なぜこのis notが動作しているのか分かりません。

答えて

1

findOneAndUpdateクエリに更新パラメータがありません。

Model.findOneAndUpdate([conditions], [update], [options], [callback]) 

このdoc

をチェック
関連する問題