# Введение
Nest (NestJS) - это фреймворк для построения эффективных, масштабируемых Node.js (opens new window) приложений на сервере. Он использует современный JavaScript, построен на основе и полностью поддерживает TypeScript (opens new window) (но при этом позволяет разработчикам писать на чистом JavaScript) и сочетает в себе элементы ООП (объектно-ориентированного программирования), ФП (функционального программирования) и ФРП (функционально-реактивного программирования).
Под капотом Nest использует надежные фреймворки HTTP-серверов, такие как Express (opens new window) (по умолчанию) и, по желанию, может быть настроен на использование Fastify (opens new window)!
Nest обеспечивает уровень абстракции над этими распространенными фреймворками Node.js (Express/Fastify), но также предоставляет их API непосредственно разработчику. Это дает свободу в использовании огромного количества сторонних модулей, которые доступны для базовой платформы.
Не все понятия в документации переведены на русский язык, т.к. общепринятыми для них являются именно английские обозначения (например Middleware, Pipes, Guards и т.д. Писать вместо этого "мидлвары", "пайпы", "гуарды" - как-то некрасиво 🙂)
на русский язык!
Если документация помогла вам и оказалась полезна - вы можете поддержать
автора, угостив его парой бокалов пивка 🍺 через сервис
donatty.
Либо внести свой вклад в перевод пул реквестом на
гитхабе

# Философия
В последние годы, благодаря Node.js, JavaScript стал очень популярен в Интернете как для фронтенда, так и для бекенда. Это привело к появлению таких замечательных проектов, как Angular (opens new window), React (opens new window) и Vue (opens new window), которые повышают производительность разработчиков и позволяют создавать быстрые, тестируемые и расширяемые фронтенд-приложения. Однако, хотя для Node (и серверного JavaScript) существует множество превосходных библиотек, и инструментов, но они не решают главную проблему - Архитектуру.
Nest предоставляет готовую архитектуру приложений, которая позволяет разработчикам и командам создавать высокотестируемые, масштабируемые, слабосвязанные и легко поддерживаемые приложения. Архитектура в значительной степени вдохновлена фреймворком Angular.
# Установка
Чтобы начать работу, вы можете либо создать проект с помощью Nest CLI, либо клонировать стартовый проект (оба варианта дадут одинаковый результат).
Чтобы создать проект с помощью Nest CLI, выполните следующие команды. Это создаст новую папку и базовую структуру для вашего проекта. Создание нового проекта с помощью Nest CLI рекомендуется для начинающих пользователей. Мы будем использовать именно этот подход далее, в разделе Первые шаги.
$ npm i -g @nestjs/cli
$ nest new project-name
# Альтернативы
В качестве альтернативы, установка начального TypeScript проекта с помощью Git:
$ git clone https://github.com/nestjs/typescript-starter.git project
$ cd project
$ npm install
$ npm run start
Если вы хотите клонировать репозиторий без истории, вы можете использовать degit (opens new window).
Откройте ваш браузер и перейдите на http://localhost:3000/ (opens new window).
Для установки начального JavaScript проекта, используйте javascript-starter.git
в последовательности команд выше.
Вы также можете вручную создать новый проект с нуля, устанвив ядро и вспомогательные файлы с помощью npm (или yarn). В этом случае, конечно же, вы будете нести ответственность за создание шаблонных файлов проекта самостоятельно.
$ npm i --save @nestjs/core @nestjs/common rxjs reflect-metadata