import { Controller, Post, Body } from '@nestjs/common';
import { MyService } from 'my.service';
import { MyDto } from './dto/my.dto';
@Controller('my-route')
export class MyController {
constructor(private readonly _myService: MyService) {}
@Post()
async myMethod(@Body() myDto: MyDto) {
console.log(myDto); // undefined
return await this._myService.doStuff(myDto.elementOfInterest); // Passes undefined variable into method.
}
}
Je suis confus quant à la bonne façon d'accéder aux données du formulaire de corps à partir d'un POST dans Nest. La documentation et les exemples montrent tous une utilisation simple du décorateur @Body()
précédant le nom d'un paramètre qui contiendra le corps (ou un élément spécifique dans le corps si un paramètre est utilisé). Pourtant, dans mon exemple ci-dessus, le corps n'est jamais rempli et la méthode est appelée avec myDto
étant indéfini. Même en changeant son type en chaîne et en passant simplement une seule paire clé/valeur dans le corps de mon POST le laisse indéfini.
Quelle est la bonne façon de gérer les corps POST dans Nest?
Commentaire de Kamil Mysliwiec sur Content-Type
était la solution.
N'oubliez pas non plus de définir
Content-Type
demande l'en-tête dansapplication/json
.