@Controller({path: "product",scope: Scope.REQUEST})
Думаю, вот в чем дело. Поскольку узел является однопоточным, он не удалял мой предыдущий экземпляр и снова и снова использовал одну и ту же переменную ответа. Итак, мой API-1 сохранил ответ на переменную RESPONSE.
При следующем запросе API-2 использовал ту же переменную RESPONSE.
Структура переменной RESPONSE была такой -
{
status: bool,
message: string,
data: object
}
API-1 изменил ее на
{
status: true,
message: "Done",
data: {"key":"value"}
}
Однако API-2 использовал только первые два ключа .
{
status: true,
message: "Not done",
data: {"key":"value"}
}
А значит получил третий data ключ предыдущего запроса.
В идеале этого не должно происходить. Но после применения области действия она была решена.
https://docs.nestjs.com/fundamentals/injection-scopes
Контроллеры также могут иметь область действия, которая применяется ко всем обработчикам методов запроса, объявленным в этом контроллер. Как и область действия поставщика, область действия контроллера объявляет время его существования. Для контроллера с областью запроса новый экземпляр создается для каждого входящего запроса и собирается мусором, когда запрос завершает обработку.