Nest (NestJS) — фреймворк для построения эффективных и масштабируемых серверных приложений на базе Node.js. Он использует современный JavaScript, полностью поддерживает TypeScript, на основе которого он построен (но по прежнему позволяет разработчикам писать код на чистом JavaScript) и совмещает в себе элементы объектно-ориентированного программирования, функционального программирования и функционально-реактивного программирования.
Под капотом, Nest использует надёжные серверные HTTP фреймворки, такие, как Express (по умолчанию), а также может быть настроен для работы с Fastify!
Nest предоставляет разработчикам уровень абстракции над этими Node.js фреймворками (Express | Fastify), но также предоставляет и их API. Это даёт разработчикам полную свободу в использовании множества сторонних модулей, которые доступны для данных платформ.
В последние годы, благодаря Node.js, JavaScript стал очень популярен среди пользователей интернета как для Front-End, так и для Back-End приложений. Это породило такие замечательные фреймворки, как Angular, React и Vue, которые повышают продуктивность разработчиков и позволяют создавать быстрые, тестируемые и расширяемые Front-End приложения. Однако огромное количество существующих библиотек и утилит, которые написаны для Node.js не решают главную проблему — проблему архитектуры.
Nest предоставляет грамотную архитектуру вашим приложениям прямо из коробки, что позволяет разработчикам и командам разработчиков создавать полностью тестируемые, масштабируемые, слабо связанные и легко поддерживаемые приложения. Архитектурный подход в Nest очень сильно вдохновлён Angular.
Чтобы начать работу, вы можете либо сгенерировать проект при помощи NestJS CLI, либо клонировать стартовый проект (оба способа дадут один и тот же результат).
Чтобы создать проект при помощи NestJS CLI, выполните перечисленные снизу команды. Это создаст вам новую директорию, в которой будут лежать исходные файлы проекта. Использование NestJS CLI рекомендовано для новых пользователей. Мы продолжим использовать данный подход в разделе Первые шаги.
$ npm i -g @nestjs/cli
$ nest new project-name
Note
Чтобы создать новый проект с включённым строгим режимом для TypeScript (strict mode), передайте флаг --strict в команду nest new.
В качестве альтернативы, вы можете использовать Git, чтобы установить стартовый проект, использующий TypeScript:
$ git clone https://github.com/nestjs/typescript-starter.git project
$ cd project
$ npm install
$ npm run start
Note
Если вы хотите склонировать репозиторий без истории git (git history), вы можете использовать degit.
Чтобы сделать JavaScript языком для стартового проекта, используйте javascript-starter.git
вместо typescript-starter.git
.
$ git clone https://github.com/nestjs/javascript-starter.git project
$ cd project
$ npm install
$ npm run start
Откройте свой браузер и перейдите на http://localhost:3000/
Вы также можете создать проект и вручную, при помощи установки основных и вторичных пакетов при помощи npm
или yarn
.
В таком случае, вы будете полностью ответственны за создание всех шаблонных файлов.
$ npm i --save @nestjs/core @nestjs/common rxjs reflect-metadata