An open API service indexing awesome lists of open source software.

https://github.com/findingtheconcept/nestjs-ru-docs

Полный перевод документации Nest.js на русский язык!
https://github.com/findingtheconcept/nestjs-ru-docs

Last synced: 5 months ago
JSON representation

Полный перевод документации Nest.js на русский язык!

Awesome Lists containing this project

README

          

# Знакомство

**Nest** (NestJS) — фреймворк для построения эффективных и масштабируемых серверных приложений на
базе [Node.js](https://nodejs.org/ru/). Он использует современный
**JavaScript**, полностью поддерживает **TypeScript**, на основе которого он построен (но по прежнему позволяет
разработчикам писать код на чистом **JavaScript**) и совмещает в себе элементы объектно-ориентированного программирования,
функционального программирования и функционально-реактивного программирования.

Под капотом, **Nest** использует надёжные серверные **HTTP** фреймворки, такие,
как [Express](http://expressjs.com/ru/) (по умолчанию), а также может быть настроен для работы
с [Fastify](https://www.fastify.io/)!

**Nest** предоставляет разработчикам уровень абстракции над этими [Node.js](https://nodejs.org/ru/)
фреймворками ([Express](http://expressjs.com/ru/) | [Fastify](https://www.fastify.io/)), но также предоставляет и их
**API**. Это даёт разработчикам полную свободу в использовании множества сторонних модулей, которые доступны для данных
платформ.

## Философия

В последние годы, благодаря [Node.js](https://nodejs.org/ru/), **JavaScript** стал очень популярен среди пользователей
интернета как для **Front-End**, так и для **Back-End** приложений. Это породило такие замечательные фреймворки,
как [Angular](https://angular.io/), [React](https://ru.reactjs.org/) и [Vue](https://vuejs.org/), которые повышают
продуктивность разработчиков и позволяют создавать быстрые, тестируемые и расширяемые **Front-End** приложения. Однако
огромное количество существующих библиотек и утилит, которые написаны для [Node.js](https://nodejs.org/ru/) не решают
главную проблему — проблему **архитектуры**.

**Nest** предоставляет грамотную архитектуру вашим приложениям прямо из коробки, что позволяет разработчикам и командам
разработчиков создавать полностью тестируемые, масштабируемые, слабо связанные и легко поддерживаемые приложения.
Архитектурный подход в **Nest** очень сильно вдохновлён [Angular](https://angular.io/).

## Установка

Чтобы начать работу, вы можете либо сгенерировать проект при помощи **NestJS CLI**, либо клонировать стартовый проект (оба
способа дадут один и тот же результат).

Чтобы создать проект при помощи **NestJS CLI**, выполните перечисленные снизу команды. Это создаст вам новую директорию, в
которой будут лежать исходные файлы проекта. Использование **NestJS CLI** рекомендовано для новых пользователей. Мы
продолжим использовать данный подход в разделе [Первые шаги]().

```shell
$ npm i -g @nestjs/cli
$ nest new project-name
```

> [!NOTE]
> Чтобы создать новый проект с включённым строгим режимом для __TypeScript__ ([strict mode](https://www.typescriptlang.org/tsconfig#strict)), передайте флаг __--strict__ в команду __nest new__.

## Другие пути

В качестве альтернативы, вы можете использовать **Git**, чтобы установить стартовый проект, использующий **TypeScript**:

```shell
$ git clone https://github.com/nestjs/typescript-starter.git project
$ cd project
$ npm install
$ npm run start
```

> [!NOTE]
> Если вы хотите склонировать репозиторий без __истории git__ (__git history__), вы можете использовать [__degit__](https://github.com/Rich-Harris/degit).

Чтобы сделать **JavaScript** языком для стартового проекта, используйте `javascript-starter.git` вместо `typescript-starter.git`.

```shell
$ git clone https://github.com/nestjs/javascript-starter.git project
$ cd project
$ npm install
$ npm run start
```

Откройте свой браузер и перейдите на [`http://localhost:3000/`](http://localhost:3000/)

Вы также можете создать проект и вручную, при помощи установки основных и вторичных пакетов при помощи `npm` или `yarn`.
В таком случае, вы будете полностью ответственны за создание всех шаблонных файлов.

```shell
$ npm i --save @nestjs/core @nestjs/common rxjs reflect-metadata
```