Перейти к основному содержимому

source-decorators

Встроенные декораторы​

ДекораторИсточник
@Body()req.body
@Query()req.query
@Header()req.headers
@Uri()req.params
@Params()req.params
@Session()req.session

Файлы, отправленные как multipart/form-data, имеют собственные декораторы @UploadedFile() и @UploadedFiles(), описанные в Декораторы загрузки файлов.

Подробности о декораторах​

@Body()​

Извлекает данные из тела HTTP-запроса и привязывает их к соответствующему полю.

  • источник: req.body

@Query()​

Извлекает данные из параметров строки запроса HTTP и привязывает их к соответствующему полю.

  • источник: req.query

Извлекает значения из заголовков HTTP-запроса и привязывает их к соответствующему полю. Обычно используется для доступа к метаданным запроса, таким как токены аутентификации (Authorization) или пользовательские заголовки, непосредственно из DTO.

  • источник: req.headers

@Uri() / @Params()​

Извлекает переменные пути из URL HTTP-запроса и привязывает их к соответствующему полю. Обычно используется для получения идентификаторов ресурсов (таких как id) в REST API как части DTO.

Оба декоратора выполняют одно и то же внутреннее поведение, и @Uri() является псевдонимом @Params().

  • источник: req.params
  • Часто используется в маршрутах, таких как /users/:id, /posts/:postId

@Session()​

Извлекает значения, хранящиеся в сессии, и привязывает их к полю DTO. Это полезно для передачи состояния на стороне сервера, такого как информация об аутентифицированном пользователе, в DTO.

  • источник: req.session
  • Доступно только при настроенном промежуточном ПО сессии

Пример использования​

Вот пример того, как использовать декораторы источников в приложении Express.

class Request {
@Body('email')
email!: string

@Query('limit')
limit!: number

@Header('Authorization')
authorization!: string
}