NestJS - это фреймворк для создания эффективных расширяемых серверных приложений на Node.js. Он использует прогрессивный Javascript, написан на и полностью поддерживает TypeScript (тем не менее, позволяет разработчикам использовать чистый JavaScript) и совмещает в себе элементы ООП (Объектно-ориентированного программирования), функционального программирования и функционального реактивного программироания.
Под капотом, Nest использует мощные HTTP фреймворки вроде Express и Fastify, представляя уровень абстракции над ними, но в то же время может выдать прямой доступ к их API для разработчиков. Это позволяет легко использовать множество сторонних модулей, доступных для этих платформ.
В последние годы, благодаря Node.js, JavaScript стал lingua franca для web: и фронтенд, и бекенд приложений. Это помогло развиться таким замечательным проектам, как Angular, React и Vue, которые значительно увеличили продуктивность разработчиков и позволили нам создавать быстрые, тестируемые и расширяемые приложения для фронтентда. Однако, несмотря на существование множества различных библиотек, хелперов и инструментов, существующих для Node, ни одна из них не решает главную проблему - архитектура.
Nest помогает разработчикам создавать архитектуру MVP приложений, что позволяет им создавать тестируемые, расширяемые, слабосвязанные и легко поддерживаемые приложения.
Чтобы начать, вы можете либо создать новый проект с Nest CLI или клонировать стартовый boilerplate.
Для создания проекта из консоли, пропишите следующие команды. Это создаст новую папку для проекта и заполнит ее исходными файлами Nest и модулями-зависимостями, представляя вам простую и удобную базовую структуру проекта. Создание проекта через консоль рекомендовано новым пользователям. Мы продолжим использовать этот подход в Первых шагах
$ npm i -g @nestjs/cli
$ nest new project-name
Или вы можете установить проект с помощью git:
$ git clone https://github.com/nestjs/typescript-starter.git project
$ cd project
$ npm install
$ npm run start
Если вас интересует проект, использующий чистый JavaScript - клонируйте javascript-starter.git
в наборе команд выше.
Вы также можете создать новый проект с нуля, устанавливая core и другие модули, используя npm или yarn. В этом случае, конечно, вам придется создавать файлы проекта самостоятельно.
$ npm i --save @nestjs/core @nestjs/common rxjs reflect-metadata