NestJS:返回字符串 [英] NestJS : return a string

查看:11
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆