2016-04-01 16 views
0

Öğrenmek için Backbone, Node, MongoDB ve Express kullanarak bu uygulamayı oluşturdum. POST istekleri sadece iyi çalışır, ancak bazı nedenlerden dolayı PUT ve DELETE istekleri çok büyük bir gecikmeyle gönderilir ve reddedilmiş gibi görünür. Kontrol ettim ve yeniden kontrol ettim ve hiçbir şey yanlış görünüyordu, konsola göre, istekleri onların olmasını beklediğim şey.Backbone Node silme

İşte benim katman kod yöntemi-geçersiz kılma da dahil, var:

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;} 
    }); 
}); 

Ve PUT yapmak görünüm fonksiyonları ve: İşte

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 işlemek ve sırasıyla SİL sunucu fonksiyonları Aşağıdaki durumlarda sırasıyla sırasıyla DELETE istekleri:

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(); 
     } 

bu yanlış?

Çok teşekkür ederim!

cevap

0

Kendi sorumu çözmeyi başardım. Herkesin merak ettiği durumda, yapılması gereken, req.params dosyasından alınan kimliği dönüştürmek ve ObjectId'e dönüştürmek ve ayrıca _id öğesini gönderilen öğeden kaldırmaktı.

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

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

Yine de teşekkürler!