Parâmetros de consulta
Parte da seção TypeScript e NestJS do Journey de Node.js da Coddy. Lição 3 de 17.
Um cliente que queira apenas as tarefas abertas não deveria precisar baixar todas as tarefas e filtrá-las por conta própria. A string de consulta, a parte depois de ?, carrega opções como essa.
@Get()
findAll(@Query('author') author?: string) {
if (!author) {
return this.books;
}
return this.books.filter((book) => book.author === author);
}@Query('author') lê ?author=Le%20Guin ou retorna undefined quando a solicitação não contém esse parâmetro.
Os tipos do TypeScript são removidos quando o código é executado: o Node executa o JavaScript restante após a remoção dos tipos, e nada os verifica. Escreva inStock?: boolean e o Nest ainda fornecerá a string 'false', que é avaliada como verdadeira. Os tipos documentam seu código e ajudam o editor; compare os valores da consulta como texto.
Desafio
FácilGET /tasks?done=trueretorna apenas as tarefas concluídas;GET /tasks?done=falseretorna apenas as tarefas em aberto.- Sem
done,GET /tasksretorna todas as tarefas. - Envie
GET /tasks?done=falsee, em seguida,GET /tasks?done=true.
Experimente você mesmo
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));
}
}
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de TypeScript e NestJS
1Fundamentos do Nest
Olá, NestParâmetros de rota