Node.js 如何在节点RESTAPI上处理并发http请求?

Node.js 如何在节点RESTAPI上处理并发http请求?,node.js,concurrency,httprequest,backend,race-condition,Node.js,Concurrency,Httprequest,Backend,Race Condition,我有一个服务,它查看一个数据库布尔值,切换布尔值,然后用前面的值进行响应。例如:如果该值为true,则将其更改为false,并将true作为响应发送 问题是有两个请求同时发送(同时发送),两个请求发送的值相同。我想这是一个我无法解决的并发问题。如何确保对节点服务器的请求一次发生一个。可能是某个队列或其他什么?在哪里(数据库系统的品牌和型号)存储此布尔值?您是否可以让该数据库原子地切换值,或者使用事务?这几乎是摆脱您描述的竞争条件的唯一方法。该值存储在firestore中,我认为自动切换不可能解决

我有一个服务,它查看一个数据库布尔值,切换布尔值,然后用前面的值进行响应。例如:如果该值为true,则将其更改为false,并将true作为响应发送


问题是有两个请求同时发送(同时发送),两个请求发送的值相同。我想这是一个我无法解决的并发问题。如何确保对节点服务器的请求一次发生一个。可能是某个队列或其他什么?

在哪里(数据库系统的品牌和型号)存储此布尔值?您是否可以让该数据库原子地切换值,或者使用事务?这几乎是摆脱您描述的竞争条件的唯一方法。该值存储在firestore中,我认为自动切换不可能解决我的问题,尽管我写道,不是自动切换。您确实可以在Firestore上使用事务。读这个。