vâng, bạn cần khóa houseModel tốt hơn, để cho biết rằng một addItem đang được tiến hành.
Vấn đề là nhiều yêu cầu có thể gọi findById và xem samehouse.items.length, sau đó mỗi yêu cầu xác định dựa trên snapshock (đã lỗi thời) đó và có thể thêm một mục nữa. Ranh giới nodejs của tính nguyên tử là thecallback; giữa một cuộc gọi không đồng bộ và cuộc gọi lại của nó, các yêu cầu khác có thể chạy.
Một cách khắc phục dễ dàng là không chỉ theo dõi số lượng các mục trong ngôi nhà mà còn cả số lượng các tiện ích bổ sung dự định. Khi vào addItem, hãy nhấn vào số lượng "muốn thêm nhiều hơn nữa" và kiểm tra điều đó.