Parameter Query
Termasuk bagian TypeScript dan NestJS dalam perjalanan Node.js di Coddy. Pelajaran 3 dari 17.
Client yang hanya menginginkan tugas yang masih terbuka seharusnya tidak perlu mengunduh semua tugas lalu memfilternya sendiri. String query, bagian setelah ?, memuat opsi seperti itu.
@Get()
findAll(@Query('author') author?: string) {
if (!author) {
return this.books;
}
return this.books.filter((book) => book.author === author);
}@Query('author') membaca ?author=Le%20Guin, atau memberikan undefined jika permintaan tidak menyertakannya.
Tipe TypeScript dihapus saat kode dijalankan: Node menjalankan JavaScript yang tersisa setelah tipe dihapus, dan tidak ada yang memeriksanya. Tulis inStock?: boolean dan Nest tetap memberikan string 'false', yang bernilai truthy. Tipe mendokumentasikan kodemu dan membantu editor, bandingkan nilai query sebagai teks.
Tantangan
MudahGET /tasks?done=truemenampilkan hanya tugas yang sudah selesai;GET /tasks?done=falsehanya menampilkan tugas yang masih terbuka.- Tanpa
done,GET /tasksmenampilkan semua tugas. - Kirim
GET /tasks?done=false, laluGET /tasks?done=true.
Coba sendiri
import { Controller, Get, Param } from '@nestjs/common';
interface Task {
id: number;
title: string;
done: boolean;
}
@Controller('tasks')
export class TasksController {
private tasks: Task[] = [
{ id: 1, title: 'Write the README', done: true },
{ id: 2, title: 'Fix the login bug', done: false },
{ id: 3, title: 'Plan the sprint', done: false },
];
@Get()
findAll(): Task[] {
return this.tasks;
}
@Get(':id')
findOne(@Param('id') id: string): Task | undefined {
return this.tasks.find((task) => task.id === Number(id));
}
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di TypeScript dan NestJS
Latihan sendiri: Playground Express