typescript - nest.js @Post yanıtın content-type'ını ayarlamak
API'ime bir POST uç noktası uygulamaya çalışıyorum, bu uç nokta çağrıldığında bir HTML dizesi döndürüyor.
Şu anda kodum şöyle görünüyor:
import { Controller, Post } from '@nestjs/common';
@Controller()
export class MyController {
@Post('/endpoint')
public create(): string {
return `
<!DOCTYPE html>
…
</html>`;
}
}
POST uç noktasına doğru içerik türünü yanıtıyla birlikte göndermesini nasıl söyleyebilirim? Tüm belgeleri araştırdım ama benim için faydalı bir şey bulamadım.
Yardımınız için şimdiden teşekkür ederim
Cevap #1
Cevabı kendim bulabildim. @Post dekoratörünün hemen arkasına sadece @Header dekoratörünü ekledim:
import { Header } from '@nestjs/common'
@Post('/endpoint')
@Header('content-type', 'text/html')
public create(): string {
//
}
Cevap #2
Başka bir seçenek (Express kullanıldığı varsayılarak), yanıtı gönderirken içerik türünü belirtmektir. Bu, isteği işlerken JSON (veya diğer yanıt türlerini) koşullu olarak döndürmenize olanak tanıyacaktır:
import { Response } from 'express';
@Post('/endpoint')
public create(@Res() res: Response): string {
// ...
if (error) {
return res.status(404).json({message: 'image not found'});
}
// ...
return res.status(200).contentType('text/html').send(document);
}
