DTOs
Termasuk bagian TypeScript dan NestJS dalam perjalanan Node.js di Coddy. Pelajaran 10 dari 17.
@Body() body: { title: string } menjelaskan body hanya di satu tempat, dan tidak ada yang memeriksanya: { "title": 42 } langsung diteruskan. DTO, yaitu object transfer data, adalah class yang menjelaskan isi body permintaan.
export class CreateOrderDto {
customer: string;
express?: boolean;
}
@Post()
create(@Body() dto: CreateOrderDto) {
return this.ordersService.create(dto);
}express? menandai field opsional. Controller dan service menggunakan class yang sama, sehingga keduanya menyepakati bentuknya.
DTO berupa class, bukan interface, karena suatu alasan. Interface dihapus bersama tipe lainnya saat kode dijalankan, sedangkan class tetap ada. Hanya decorator class-validator pada class yang dapat memeriksa body saat program berjalan. Itu akan dibahas di pelajaran berikutnya.
Tantangan
Mudah- Isi
CreateTaskDtodidto/create-task.dto.ts:title, dandoneyang opsional. - Gunakan untuk body
POST /tasks. Tugas baru mengambildonedari body, dengan nilaifalsejika tidak ada. - Kirim
POST /tasksdengan{ "title": "Pay rent", "done": true }, lalu dengan{ "title": 42 }.
Coba sendiri
// Jelaskan isi POST /tasks: title, serta done jika dikirim oleh client.
export class CreateTaskDto {}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di TypeScript dan NestJS
Latihan sendiri: Playground Express