骨干删除命令在Node服务器上执行,但前端没有触发同步事件

从Backbone sync发出删除命令后,尽pipeNode服务器执行命令并从MongoDB中删除了一个条目,但我并没有收到同步事件。 这是前端(主干)上的相关代码:

handleDeleteCar: function (carId) { Backbone.sync("delete", cars.get(carId), {url:'/api/cars/' + carId}); cars.remove(cars.get(carId)); }, 

和后端(Node)上:

 app.delete('/api/cars/:id', function (req, res) { var carImage = Car.findById(req.params.carId)._carImage; Car.remove({ _id : req.params.id } , function (err){ if (!err){ console.log("Cars deleted"); Image.remove({_id:carImage}, function (err){ if (!err) console.log("Image deleted"); res.json({"status":"OK"}); }); } }); }); 

正如我所说的一切工作正常,除非我没有在浏览器中获取同步事件。 我正在使用我正在使用的其他所有动词(get,post和put)的事件。 我尝试从服务器不同的返回值,但无济于事。

你不应该直接使用Backbone.sync。 这样做的正确方法是将集合url设置为“/ api / cars /”并调用model.destroy()

 var Cars = Backbone.Collection.extend({ url: '/api/cars/', /* ... */ }); /* ... */ handleDeleteCar: function (carId) { cars.get(carId).destroy() }