Nest.js RangeError:超出最大调用堆栈大小

Sat*_*tor 1 typescript axios nestjs

我想使用 axios 和 Nestjs 向外部 api 发出请求。 我使用 axios

接受了 Nestjs 这个答案,而不是在控制器中执行请求,而是创建了一个服务

// controller
import { Controller, Get } from '@nestjs/common';
import { CollectService } from './collect.service';


@Controller('collect')
export class CollectController {
    constructor(private collectService: CollectService) {}


    @Get()
    getResponse(){
         this.getResponse();

    }
   

}

// ----------service ------------------------

import { Injectable, HttpService } from '@nestjs/common';

@Injectable()
export class CollectService {

    constructor(private httpService: HttpService) {}


    async getResponse() {
       
        const response = await this.httpService.get('https://reqres.in/api/users/2').toPromise();
        return response.data;

    
     
        }
      
}


Run Code Online (Sandbox Code Playgroud)

这给了我一个 stackoverflow


[Nest] 23928   - 02/28/2021, 12:16:18 PM   [ExceptionsHandler] Maximum call stack size exceeded +74479ms
RangeError: Maximum call stack size exceeded

Run Code Online (Sandbox Code Playgroud)

是什么导致了这种行为?

hoa*_*gdv 15

你调用控制器的getResponse()无穷大,然后它会抛出Maximum call stack size exceeded错误。

我认为您想改为调用该服务的函数:

    @Get()
    getResponse(){
         this.collectService.getResponse();

    }
Run Code Online (Sandbox Code Playgroud)