gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 16:50:55 28 4
gpt4 key购买 nike

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

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":"O.K."});
});
}
});
});

正如我所说,除了我没有在浏览器中收到同步事件外,一切正常。我正在为我使用的每个其他动词(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()
}

关于javascript - 主干删除命令在 Node 服务器上执行,但前端没有触发同步事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30545576/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com