2016-04-01 7 views
0

私は、バックボーン、ノード、MongoDB、Expressを使ってこのアプリを作りました。 POST要求は正常に動作しますが、何らかの理由でPUTとDELETE要求が非常に遅れて送信され、拒否されたようです。私はチェックして再チェックして何も間違っているように見える、コンソールによると、要求は私が期待しているものです。バックボーンノードput削除

ここに私のミドルウェア・コードは、メソッドのオーバーライドを含む、です:

router.put('/api/dogs/:id', function(req, res) { 
    mongo.db() 
     .collection('dogs') 
     .update({_id: req.params.id}, req.body, function (err) { 
      if (err) {throw err;} 
     }); 
}); 

router.delete('/api/dogs/:id', function(req, res) { 
    mongo.db() 
    .collection('dogs') 
    .remove({_id: req.params.id}, function (err) { 
     if (err) {throw err;} 
    }); 
}); 

をとPUTを作るビュー機能と:ここ

app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(cookieParser()); 
app.use(express.static(path.join(__dirname, 'public'))); 
app.use(methodOverride()); //so we can receive DELETE requests 

は、PUTを処理し、それぞれDELETEサーバー機能です次の場合にそれぞれDELETEリクエストを受け取ります。

close: function (ev) { 
      var $input = $(ev.target); 
      var value = $input.val().trim(); //we trim the value of the input 
      var data = {}; 
      data[$input.attr('name')] = value; 
      this.model.set(data); 
      this.model.save(); 
     }, 

clear: function() { 
      this.model.destroy(); 
     } 

誰もが '間違っている?

ありがとうございました!

答えて

0

私は自分の質問を解決することができました。誰かが不思議に思っていた場合、req.paramsから取得したidをObjectIdに変換し、送信されたアイテムから_idも削除する必要がありました。

var id = new mongodb.ObjectId(req.params.id); 

var dog = req.body; 
delete(dog._id); 

ありがとうございました!

関連する問題