web-dev-qa-db-ja.com

NestJS-@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.
    }
}
_

NestのPOSTから本文のフォームデータにアクセスする適切な方法について混乱しています。ドキュメントと例はすべて、名前の前の@Body()デコレータの簡単な使用法を示していますボディ(またはパラメータが使用されている場合はボディ内の特定の要素)を含むパラメータです。ただし、上記の例では、ボディにデータが入力されることはなく、メソッドはmyDtoが未定義で呼び出されます。タイプを文字列に変更して、my POSTの本文に単一のキー/値のペアを渡すだけでも、未定義のままになります。

NestでPOST bodyを処理する正しい方法は何ですか?

11
Nate Gardner

Kamil MysliwiecのContent-Typeに関するコメントが解決策でした。

また、Content-Typeリクエストヘッダーをapplication/jsonに設定することも忘れないでください。

10
Nate Gardner