Nest.js — это популярная платформа TypeScript для создания масштабируемых и эффективных серверных приложений. Он построен на основе Express.js и имеет модульную архитектуру, упрощающую организацию кода и разработку приложений.

В этом сообщении блога мы начнем работу с Nest.js и предоставим пример кода, иллюстрирующий его функции.

Для начала нам нужно установить Nest.js. Мы можем сделать это с помощью npm:

npm install -g @nestjs/cli

После установки Nest.js мы можем создать новый проект с помощью CLI:

nest new my-app

Эта команда создает новый проект Nest.js с именем «my-app». Теперь мы можем перейти в каталог проекта и запустить сервер разработки:

cd my-app
npm run start:dev

Эта команда запускает сервер разработки на порту 3000.

Теперь, когда у нас есть базовый проект Nest.js, давайте создадим простой контроллер, который возвращает «Hello, World!» сообщение. Мы можем сделать это, создав новый контроллер с помощью CLI:

nest generate controller hello

Эта команда создает новый контроллер с именем «hello». Теперь мы можем отредактировать контроллер, чтобы он возвращал сообщение:

import { Controller, Get } from '@nestjs/common';

@Controller()
export class HelloController {
  @Get()
  getHello(): string {
    return 'Hello, World!';
  }
}

В этом примере мы определяем новый контроллер с именем «HelloController». Мы используем декоратор @Controller, чтобы указать, что этот класс является контроллером. Затем мы определяем новый метод с именем getHello() и используем декоратор @Get, чтобы указать, что этот метод должен обрабатывать запросы GET к корневому URL-адресу ('/'). Наконец, мы возвращаем «Hello, World!» сообщение.

Чтобы протестировать наш новый контроллер, мы можем сделать запрос GET к корневому URL-адресу нашего сервера. Мы можем сделать это с помощью такого инструмента, как curl:

curl http://localhost:3000/

Эта команда должна возвращать «Hello, World!» сообщение, которое мы определили в нашем контроллере.

Структура каталогов для проекта Nest.js:

my-app/
├── node_modules/
├── src/
│   ├── app.controller.ts
│   ├── app.module.ts
│   ├── main.ts
│   └── hello/
│       └── hello.controller.ts
├── test/
├── package.json
├── tsconfig.json
└── README.md

Каталог src содержит весь код нашего приложения. Он включает файл main.ts, который служит точкой входа для нашего приложения, файл app.module.ts, который определяет основной модуль для нашего приложения, и файл app.controller.ts, который определяет контроллер для обработки запросов к корневому URL-адресу.

У нас также есть подкаталог с именем hello, который содержит отдельный контроллер для обработки запросов к URL-адресу /hello. Это иллюстрирует модульную архитектуру Nest.js, где мы можем разделить наш код на отдельные модули и контроллеры для лучшей организации и масштабируемости.