如何在NestJS中使用fastify设置自定义内容类型?

如何在NestJS中使用fastify设置自定义内容类型?,nestjs,fastify,Nestjs,Fastify,我在NestJS中有一个使用Fastify的应用程序。我想在我的回复中将内容类型设置为application/hal+json。我在NestJS拦截器中有以下代码: @Injectable() 导出类SampleInterceptor实现了NestInterceptor{ 截取(context:ExecutionContext,next:CallHandler):在fastify中可观察到从不运行,也从不将负载序列化为字符串 是一个便于您复制问题的存储库 有什么方法可以解决这个问题吗?据我所知,

我在NestJS中有一个使用Fastify的应用程序。我想在我的回复中将内容类型设置为
application/hal+json
。我在NestJS拦截器中有以下代码:

@Injectable()
导出类SampleInterceptor实现了NestInterceptor{
截取(context:ExecutionContext,next:CallHandler):在fastify中可观察到从不运行,也从不将负载序列化为字符串

是一个便于您复制问题的存储库


有什么方法可以解决这个问题吗?

据我所知,只要从拦截器返回的是字符串,Nest(和Fastfy)就会将其视为字符串,并根据需要返回。我举了一个示例,其中我返回一个XML字符串,只要设置了传入的
accept
头以请求返回XML数据(内容协商)并且Fastify返回的很好,所以只要您严格区分序列化程序返回的内容,您就不应该对自定义(不同)有任何问题header

您好。谢谢您的时间。不幸的是,如果您在使用Fastify时更改内容类型,这将不起作用。我在回答中添加了一个复制包。您可以根据自述文件克隆存储库并运行应用程序。我将指出我的第一句话,只要您从拦截器返回的是字符串嵌套Fastify不会进行任何数据处理,并且允许您返回任何您想要的内容。这就是我如何让它返回XML而不会出现问题的原因。如果您将
返回数据
更改为
返回JSON。stringify(data)
我保证它将返回您期望的内容,不会出现错误。谢谢!您说得对。我以前不理解您的论点。