对不起,标题。我真的不知道如何在这里描述我的问题。我的模型中有一个 download_count 属性。每次成功完成从Android App的下载后,它会 GET 进行 download_count 并以数量增加的方式回发 PUT 请求。
所以我的问题是,设备A的GETS很有可能在设备A发送回增加的数字之前,设备B获得相同的值。
如何防止这种情况?
答案 0 :(得分:1)
为什么要使用GET请求来获取download_count?您无需执行此操作即可更新NodeJS后端中的下载计数。相反,为什么不下载完成后就只触发一个POST请求,并处理路由模型中计数的更新?因此,您不必担心任何延迟问题。
这里是我的想法,假设您将MEAN Stack与MongooseJS结合使用:-
router.post('/update', (req, res)=>{
user.findById(id, function (err, data) { //Send some parameter in the POST request so as to uniquely identify whichever entry you wish to update the download_count of
if (err) console.log(err);
var new_download_count = data.download_count + 1; //Updating count
data.set({ download_count: new_download_count }); //Saving new count
data.save(function (err, updatedData) {
if (err) console.log(err);
res.send(updatedTank); //Indicate new object
});
});
});