【发布时间】:2018-10-25 14:38:45
【问题描述】:
在我的 NestJS 应用程序中,我想返回 http 调用的结果。
按照NestJS HTTP module的例子,我所做的只是:
import { Controller, HttpService, Post } from '@nestjs/common';
import { AxiosResponse } from '@nestjs/common/http/interfaces/axios.interfaces';
import { Observable } from 'rxjs/internal/Observable';
@Controller('authenticate')
export class AuthController {
constructor(private readonly httpService: HttpService) {}
@Post()
authenticate(): Observable<AxiosResponse<any>> {
return this.httpService.post(...);
}
}
但是从客户端我得到 500 并且服务器控制台说:
TypeError:将循环结构转换为 JSON 在 JSON.stringify() 在 stringify (/Users/francesco.borzi/sources/business-controller-rewrite/node_modules/express/lib/response.js:1119:12) 在 ServerResponse.json (/Users/francesco.borzi/sources/business-controller-rewrite/node_modules/express/lib/response.js:260:14) 在 ExpressAdapter.reply (/Users/francesco.borzi/sources/business-controller-rewrite/node_modules/@nestjs/core/adapters/express-adapter.js:41:52) 在RouterResponseController.apply (/Users/francesco.borzi/sources/business-controller-rewrite/node_modules/@nestjs/core/router/router-response-controller.js:11:36) 在 在 process._tickCallback (internal/process/next_tick.js:182:7)
【问题讨论】:
-
可能 httpService 返回了一些无效的 JSON,而 NestJS (Express) 会因为无法转换而抛出错误。尝试用 httpService 调用一些简单的东西,也许是简单的测试 GET。
-
据我了解,NestJS 应该会自动转换为 json.. 对吗?
-
是的,它应该默认自动转换。
-
当我遇到同样的事情时,我尝试使用另一个我 100% 肯定的来源进行测试,它返回有效的 json,但它仍然给出相同的错误。使用 GET 时结果相同。
标签: node.js typescript rxjs axios nestjs