【问题标题】:Ccan't get item from database with Axios and NestJS无法使用 Axios 和 NestJS 从数据库中获取项目
【发布时间】:2021-12-16 09:36:06
【问题描述】:

我无法使用 Axios 和 NestJS 从 Firebase 实时数据库中获取项目。

我的代码是:

import { Injectable } from '@nestjs/common';
import { HttpService } from '@nestjs/axios';
import { Observable } from 'rxjs';
import { AxiosResponse } from 'axios';

@Injectable()
export class AppService {
  constructor(private httpService: HttpService) {}
  async getHello(): Promise<Observable<AxiosResponse<any>>> {
    const data = await this.httpService.get(
      '[my firebase url.]',
    ).pipe();
    return data;
  }
}

我收到此错误:

[Nest] 5104  - 01.11.2021 20:28:19   ERROR [ExceptionsHandler] Converting circular structure to JSON
    --> starting at object with constructor 'ClientRequest'
    |     property 'socket' -> object with constructor 'TLSSocket'
    --- property '_httpMessage' closes the circle
TypeError: Converting circular structure to JSON
    --> starting at object with constructor 'ClientRequest'
    |     property 'socket' -> object with constructor 'TLSSocket'
    --- property '_httpMessage' closes the circle
    at JSON.stringify (<anonymous>)
    at stringify (C:\Users\Faruk\Desktop\projects\fbase\node_modules\express\lib\response.js:1123:12)
    at ServerResponse.json (C:\Users\Faruk\Desktop\projects\fbase\node_modules\express\lib\response.js:260:14)
    at ExpressAdapter.reply (C:\Users\Faruk\Desktop\projects\fbase\node_modules\@nestjs\platform-express\adapters\express-adapter.js:32:57)       
    at RouterResponseController.apply (C:\Users\Faruk\Desktop\projects\fbase\node_modules\@nestjs\core\router\router-response-controller.js:14:36)
    at C:\Users\Faruk\Desktop\projects\fbase\node_modules\@nestjs\core\router\router-execution-context.js:175:48
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
    at C:\Users\Faruk\Desktop\projects\fbase\node_modules\@nestjs\core\router\router-execution-context.js:47:13
    at C:\Users\Faruk\Desktop\projects\fbase\node_modules\@nestjs\core\router\router-proxy.js:9:17

【问题讨论】:

    标签: firebase firebase-realtime-database axios nestjs


    【解决方案1】:

    看起来您根本没有映射响应。根据定义,Axios 响应是循环的,因此您只需返回您需要的响应部分。大多数时候,这只是return this.httpService.get(url).pipe(map((resp) =&gt; resp.data))

    【讨论】:

      猜你喜欢
      • 2021-03-07
      • 2021-05-03
      • 1970-01-01
      • 1970-01-01
      • 2020-06-14
      • 1970-01-01
      • 2020-09-27
      • 2021-11-20
      • 1970-01-01
      相关资源
      最近更新 更多