NestJS:返回字符串 [英] NestJS : return a string
本文介绍了NestJS:返回字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用@nrwl/Nx创建项目。
我已成功将两个角度嵌套项目添加到其中(&A)。
然后,我尝试测试两者之间的连接。角度代码
content;
testEndpoint() {
this.http.get<any>('api/test').subscribe(res => this.content = res);
}
嵌套代码
@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}
@Get('test')
testConnection(): string {
return 'Some content';
}
}
如图所示,我只是尝试从端点返回一个字符串。在the documentation中,
使用此内置方法,当请求处理程序返回JavaScript对象或数组时,它将自动序列化为JSON。然而,当它返回一个字符串时,Nest将只发送一个字符串,而不会尝试将其序列化。这使得响应处理变得简单:只返回值,Nest负责睡觉。
所以很自然,我希望这能起作用(它们的示例基本上与此相同)。
但我遇到以下错误:
错误:语法错误:JSON中[.]位置0处的意外标记S
即使HTTP代码是200,并且可以在网络选项卡中看到内容。
有人能给我解释一下是什么问题吗?
(我已尝试向请求添加内容类型标头,但未成功)
编辑1:请求:
HttpClient
看起来推荐答案只是忽略服务器发送的内容类型,试图始终将响应视为JSON。这很奇怪,但值得庆幸的是,您可以显式指定预期的响应类型来覆盖它,如the docs中所述。
this.http.get('api/test', {responseType: 'text'})
警告是,由于this issue,您必须删除泛型部分(或以某种其他方式擦除类型)。
如果将
responseType
指定为'json'
以外的值,则不能使用泛型,因为这样会自动推断typeof T
。
这篇关于NestJS:返回字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文