ano, potřebujete lepší zamykání na houseModel, abyste označili, že probíhá addItemis.
Problém je v tom, že více požadavků může volat findById a vidět samehouse.items.length, pak každý na základě tohoto (zastaralého) snímku určí, že je v pořádku přidat jednu další položku. Nodejs hranicí atomicity je zpětné volání; mezi asynchronním voláním a jeho zpětným voláním mohou běžet další požadavky.
Jednou snadnou opravou je sledovat nejen počet položek v domě, ale také počet zamýšlených addItems. Při vstupu do addItem spusťte počet „chcete přidat další“ a otestujte to.