Настроить новый проект довольно просто с помощью Nest CLI. Если установлен npm, вы можете создать новый проект Nest с помощью следующих команд в терминале вашей ОС:
$ npm i -g @nestjs/cli
$ nest new project-name
Будет создан каталог project-name
, установлены модули node и несколько других шаблонных файлов, а также создан каталог src/
, который будет заполнен несколькими основными файлами.
- src
-- app.controller.spec.ts
-- app.controller.ts
-- app.module.ts
-- app.service.ts
-- main.ts
app.controller.ts | Базовый контроллер с одним маршрутом. |
app.controller.spec.ts | Юнит-тесты для контроллера. |
app.module.ts | Корневой модуль приложения. |
app.service.ts | Базовый сервис с единственным методом. |
main.ts | Входной файл приложения, который использует функцию NestFactory для создания экземпляра приложения Nest. |
В main.ts
включена асинхронная функция, которая будет инициализировать наше приложение:
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
}
bootstrap();
Для создания экземпляра приложения Nest мы используем основной класс NestFactory
. NestFactory
позволяет создать экземпляр приложения. Метод create()
возвращает объект приложения, который соответствует интерфейсу INestApplication
. Этот объект предоставляет набор методов, которые будут описаны в последующих главах. В приведенном выше примере main.ts
мы просто запускаем HTTP-сервер, который позволяет приложению обрабатывать входящие HTTP-запросов.
Обратите внимание, что проект, созданный с помощью Nest CLI, создает начальную структуру проекта, которая поощряет разработчиков следовать соглашению о хранении каждого модуля в отдельном каталоге.
Платформа
Nest стремится быть фреймворком независимым от платформы. Независимость от платформы позволяет создавать логические части, которые разработчики могут повторно использовать в различных частях приложения. Технически, Nest может работать с любым Node HTTP фреймворком после создания адаптера. Из коробки поддерживаются два фреймворка HTTP: express и fastify. Вы можете выбрать тот, который лучше всего подходит для ваших нужд.
Express - известный минималистский веб-фреймворк для node. Это проверенная в боях, готовая к продакшену библиотека с большим количеством решений, реализованных сообществом. По умолчанию используется пакет @nestjs/platform-express
.
Fastify - это высокопроизводительный фреймворк, ориентированный на обеспечение максимальной эффективности и скорости.
Какая бы платформа ни использовалась, она предоставляет свой собственный интерфейс приложения. Они выглядят соответственно как NestExpressApplication
и NestFastifyApplication
.
Когда вы передаете тип в метод NestFactory.create()
, как в примере ниже, объект app
будет иметь методы, доступные исключительно для этой конкретной платформы. Однако обратите внимание, что вам не нужно указывать тип если вы не хотите получить доступ к API базовой платформы.
const app = await NestFactory.create<NestExpressApplication>(AppModule);
Запуск приложения
После завершения процесса установки вы можете выполнить следующую команду в командной строке вашей ОС, чтобы запустить приложение, принимающее входящие HTTP-запросы:
$ npm run start
Эта команда запустит приложение с HTTP-сервером, слушающим порт, определенный в файле src/main.ts
. После запуска приложения откройте браузер и перейдите по адресу http://localhost:3000/
. Вы должны увидеть сообщение Hello World!
.
0 комментариев