我已根据以下反馈更新了此问题
如果两个用户都发出执行以下操作的HTTP请求,那么在MEAN堆栈应用程序中是否可能出现竞争条件:读取记录,根据业务逻辑对记录进行一些更改,然后写回D B?或者由于单线程JS执行环境是不可能的?基于下面的一些评论,听起来这是一个问题。有没有办法实现交易?或者我可能需要创建一个作业队列或使用基于actor的方法。我试图了解如何通过MEAN堆栈解决这类问题。
答案 0 :(得分:3)
好的,我会回答你问题的较窄部分。 Node.js确实有一个用于JavaScript引擎的线程,但它使用多个线程来处理异步操作,例如...数据库(和其他)I / O.它可以很好地要求它的两个线程连接到数据库以同时编辑同一个文档。
请看这里:Does node.js use threads/thread pool internally?
所以不,Node不会在异步操作中避免竞争条件。 MongoDB在某种程度上(你真的应该阅读文档,因为它是一个复杂的主题)。