骨干删除命令在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() }
- 使用node.js服务Backbone.js应用程序的内容来searchsearch引擎优化
- 使用node.js和backbone.js进行模板渲染
- Backbone.js pushState路由与node.jsexpression服务器帐户?
- 服务器上的Node.js和Backbone.js路由器
- 使用JavaScript和Jade添加到localStorage
- 从localStorage转换Backbone的Todo List示例
- RESTful Express Mongoose&Backbone – Backbone model.remove()不起作用
- 贝宝与单页应用程序集成
- 在节点的mocha js中使用全局窗口variables