我是一个nest.js初学者,我试图用我的代码实现Axios,发生了这个错误,我想修复它。
--> starting at object with constructor 'ClientRequest'
| property 'socket' -> object with constructor 'Socket'
--- property '_httpMessage' closes the circle +188941ms
TypeError: Converting circular structure to JSON
--> starting at object with constructor 'ClientRequest'
| property 'socket' -> object with constructor 'Socket'
--- property '_httpMessage' closes the circle
at JSON.stringify (<anonymous>)
at stringify (D:\CUSportcomplex-register\sso-reg\node_modules\express\lib\response.js:1123:12)
at ServerResponse.json (D:\CUSportcomplex-register\sso-reg\node_modules\express\lib\response.js:260:14)
at ExpressAdapter.reply (D:\CUSportcomplex-register\sso-reg\node_modules\@nestjs\platform-express\adapters\express-adapter.js:24:57)
at RouterResponseController.apply (D:\CUSportcomplex-register\sso-reg\node_modules\@nestjs\core\router\router-response-controller.js:13:36)
at D:\CUSportcomplex-register\sso-reg\node_modules\@nestjs\core\router\router-execution-context.js:173:48
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async D:\CUSportcomplex-register\sso-reg\node_modules\@nestjs\core\router\router-execution-context.js:47:13
at async D:\CUSportcomplex-register\sso-reg\node_modules\@nestjs\core\router\router-proxy.js:9:17
这是我的app.service.ts
async validateSSO(appticket): Promise<SsoContent> {
let instance = axios.create({
baseURL: "http://localhost:8080/",
headers: {
'DeeAppId': config.DeeAppId,
'DeeAppSecret': config.DeeAppSecret,
'DeeTicket': appticket
}
});
instance.get("/serviceValidation")
.then(response => {
this.ssoContent = response;
})
.catch(error => {
return (error);
});
return this.ssoContent;
}
这是我的应用程序控制器
@Get('validation/:appticket')
async validateSSO(
@Param('appticket') appticket: string
//DeeAppTicket is sented via Front-end
): Promise<SsoContent> {
return this.registeringService.validateSSO(appticket);
}
谢谢你的帮助:)
8条答案
按热度按时间xmq68pz91#
首先,nest.js为您提供了开箱即用的HttpService,您可以通过DI注入它:https://docs.nestjs.com/techniques/http-module
第二,您尝试存储整个响应对象,该对象是复杂的数据结构,包含错误消息(类型错误:将循环结构转换为JSON)
您应该做的是Map所需的数据而不是存储整个循环对象,
或者您应该查找一些能够解析循环json的库:https://www.npmjs.com/package/flatted
btxsgosb2#
与存储整个响应对象(循环对象)不同,您可以存储响应的
data
对象键,这应该可以正常工作n3ipq98p3#
当您忘记在 async 函数中放置关键字 await 时,也会发生这种情况。
jw5wzhpr4#
今天我遇到了这个问题,我设法解决它的一个方法是,而不是返回:
我回答说:
z0qdvdin5#
当你忘记在异步函数中放入关键字await时,也会发生这种情况。
帮我解决了。
我觉得自己好傻...
rqqzpn5f6#
当我的应用程序(nest.js应用程序)尝试向另一个应用程序(Nest.js应用程序)发送请求时,我遇到了这个问题。这个问题是服务器的响应。我无法解决它,而是使用超级代理库。https://www.npmjs.com/package/superagent它很容易解决。
kkih6yb87#
我正在使用TypeORM与NestJS,并得到了几次以下错误:
这是因为我忘记了查询构建器末尾的
getOne()
或getMany()
。a2mppw5e8#
您可以简单地使用
circular json
.ref:https://www.npmjs.com/package/circular-json安装时:
npm i circular-json
或npm i circular-json --force
代码:
这里对象可以是圆形或普通的json对象。