Упрощение анализа чисел в Nest.js с помощью ParseInt Pipe: подробное руководство

В этой статье блога мы углубимся в использование канала ParseInt в Nest.js, мощной среде для создания масштабируемых и удобных в обслуживании серверных приложений с помощью TypeScript. Мы рассмотрим различные методы и приемы эффективного использования канала ParseInt для анализа чисел в ваших приложениях Nest.js. К концу этой статьи вы получите четкое представление о том, как использовать эту функцию для упрощения анализа чисел и повышения надежности ваших API.

Метод 1: базовое использование канала ParseInt:
Канал ParseInt — это встроенная функция Nest.js, которая позволяет автоматически анализировать параметры входящего запроса или значения запроса в целочисленные значения. Давайте рассмотрим простой пример:

@Get(':id')
async getById(@Param('id', ParseIntPipe) id: number) {
  // The 'id' parameter is automatically parsed as an integer
  // and is available for further processing
  // ...
}

В этом примере декоратор @Paramиспользуется для доступа к параметру idиз маршрута. Применяя ParseIntPipeк параметру id, Nest.js автоматически преобразует входящее значение в целое число.

Метод 2: применение проверки с помощью канала ParseInt:
Канал ParseInt также можно использовать для проверки проанализированного целочисленного значения. Вы можете применять различные правила проверки, чтобы обеспечить целостность анализируемого значения. Рассмотрим следующий пример:

@Get(':id')
async getById(@Param('id', new ParseIntPipe({ errorHttpStatusCode: 400 })) id: number) {
  // The 'id' parameter is automatically parsed as an integer
  // and validated. If the value is not a valid integer,
  // a 400 Bad Request error will be thrown.
  // ...
}

В этом примере мы передаем экземпляр класса ParseIntPipeс объектом конфигурации декоратору @Param. Свойству errorHttpStatusCodeприсвоено значение 400, что указывает на то, что ошибка неверного запроса должна быть возвращена, если проанализированное значение не является допустимым целым числом.

Метод 3. Обработка ошибок синтаксического анализа с помощью фильтров исключений.
При возникновении ошибки синтаксического анализа Nest.js по умолчанию выдает BadRequestException. Однако вы можете настроить поведение обработки ошибок с помощью фильтров исключений. Вот пример:

@Get(':id')
@UseFilters(new ParsingExceptionFilter())
async getById(@Param('id', ParseIntPipe) id: number) {
  // ...
}

В этом примере мы используем декоратор @UseFilters, чтобы применить собственный фильтр исключений под названием ParsingExceptionFilter. Этот фильтр можно использовать для обработки ошибок синтаксического анализа и предоставления значимого ответа клиенту.

Конвейер ParseInt в Nest.js — ценный инструмент для упрощения анализа чисел и обеспечения соблюдения правил проверки в конечных точках API. Используя канал ParseInt, вы можете обеспечить целостность входящих числовых данных и повысить надежность вашего приложения. Не забывайте корректно обрабатывать ошибки синтаксического анализа, используя фильтры исключений, чтобы обеспечить удобство работы с пользователем.