web-dev-qa-db-fra.com

NestJS - Comment accéder au corps du message à l'aide du décorateur @Body ()?

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?

11
Nate Gardner

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 dans application/json.

10
Nate Gardner