【问题标题】:Nest.js RangeError: Maximum call stack size exceededNest.js RangeError:超出最大调用堆栈大小
【发布时间】:2021-05-30 04:14:39
【问题描述】:

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

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

// 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;

    
     
        }
      
}


这给了我一个stackoverflow


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

是什么导致了这种行为?

【问题讨论】:

    标签: typescript axios nestjs


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-02-06
      • 1970-01-01
      • 2021-07-11
      • 2019-07-05
      • 2015-04-26
      • 2014-06-11
      • 2020-07-29
      相关资源
      最近更新 更多