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, где мы можем разделить наш код на отдельные модули и контроллеры для лучшей организации и масштабируемости.