nestjs Контроллер, GET парамертры и параметры URL - пример
Primary tabs
Получать GET-параметры и параметры из замого адреса запроса можно так (пример контроллера):
import { Controller, Get, Param, Query } from '@nestjs/common'; @Controller('test') export class TestController { @Get('queryparams/:id') getTestGetparams(@Param('id') id, @Query('type') type): string { return `Url param: ${id}, Get param type = ${type}`; } }
Валидация Get параметров с помощью joi (пример для Enum)
Пример:
import 'joi-extract-type'; import * as joi from 'joi'; import { Controller, Get, Param, Query } from '@nestjs/common'; import { JoiValidationPipe } from '../../pipes/validation.pipe'; enum MyType { FIRST = 'first', SECOND = 'second', } export const testGetParamsSchema = joi.object({ type: joi.string().valid(MyType.FIRST, MyType.SECOND).required(), }); export type TestGetParamsSchema = joi.extractType<typeof testGetParamsSchema>; @Controller('test') export class TestController { @Get('queryparams/:id') getTestGetParams( @Param('id') id, @Query('type') type, @Query(new JoiValidationPipe(testGetParamsSchema)) query: TestGetParamsSchema, ): string { testGetParamsSchema.validate(query); console.log('-------------query', query); return `Url param: ${id}, Get param type = ${type}`; } }
Где:
- JoiValidationPipe можно взять тут: https://docs.nestjs.com/pipes
- Отлаживать схему joi можно так: http://fkn.ktu10.com/?q=node/13025
- Также мб потребуется справится с ошибкой для пакета извлечения типа (может уже поправят к моменту когда вы читаете эти строки))
- Log in to post comments
- 1533 reads