На рынке доступно довольно много фреймворков, которые могут вас запутать, будь то N ext Js, N или Js или N est Js, и я уверен, что их гораздо больше.

Все они доступны для разных целей и, тем не менее, по названиям кажутся одинаковыми, но это просто путаница с названиями, и не стоит слишком сильно беспокоиться об этом.

В течение последних нескольких месяцев я писал несколько своих побочных проектов в NestJs, и это казалось многообещающим.

Kotlin был моим первым выбором для написания backend API, когда я только начинал, но это было то, с чем я уже сталкивался, поэтому я решил попробовать что-то другое. Это был раз, когда один из моих друзей убедил меня попробовать NestJs.

Что такое NestJs?

Nest (NestJS) - это фреймворк для создания эффективных масштабируемых серверных приложений Node.js. Он использует прогрессивный JavaScript, построен с использованием и полностью поддерживает TypeScript (но все же позволяет разработчикам кодировать на чистом JavaScript) и сочетает в себе элементы ООП (объектно-ориентированное программирование), FP (функциональное программирование) и FRP (функциональное реактивное программирование). - https://docs.nestjs.com/

Под капотом Nest использует Express Server и, при желании, может также использовать Fastify Server, оба очень популярны и хорошо известны в мире NodeJs. Nest представляет собой оболочку поверх них и предоставляет API-интерфейсы, которые помогают разработчику легко использовать преимущества многих пользовательских библиотек.

Он использует философию, согласно которой javascript является языком Интернета как для внутреннего, так и для внешнего интерфейса.

Nest в основном фокусируется на решении архитектурных проблем, которые возникают с фреймворками javascript, и стремится предоставить готовое решение, которое является хорошо тестируемым, масштабируемым, слабо связанным и легко обслуживаемым приложением. Архитектура в значительной степени вдохновлена ​​Angular.

Для установки и настройки вы можете воспользоваться официальной документацией, которая действительно хорошо написана - https://docs.nestjs.com/#installation

Основы

NestJs поддерживает как TypeScript, так и чистый JavaScript, он использует преимущества новейших языковых функций и использует компилятор Babel для ванильного JavaScript.

Мой опыт работы с NestJs с машинописным текстом, поскольку он дает ощущение типов и некоторых границ. Он также предлагает симпатичный маленький cli, который вы можете настроить, установив пакет nestjs/cli для создания модулей, как в Angular.

Как только вы настроите проект, вы увидите, что он использует MVC-фреймворк, очень похожий на Angular (причина, по которой они говорят, что он в значительной степени вдохновлен Angular)

main.ts включает асинхронную функцию, которая загрузит наше приложение:

Nest использует концепции платформы, чтобы сделать его гибким с различными библиотеками и фреймворками, поэтому переключение между веб-сервером, например, экспресс-версией, на fastify действительно простое.

У меня был опыт, когда я полностью переключился с mysql на mongoose с минимальными усилиями.

Что отличает его?

Безусловно, он выглядел как любой другой фреймворк, и это может быть связано с Angular framework и немного со Spring, но основное преимущество, которое я вижу в нем, - это встроенная поддержка большинства возможных плагинов для создания любого надежного внутреннего сервера api. .

В нем есть большая часть библиотеки, уже созданной для распространенных случаев использования, и поскольку использование машинописного текста и javascript становится намного проще, , например, прикрепление промежуточного программного обеспечения, присоединение JWT Auth Guard или присоединение перехватчика для входящих и исходящих вызовов чуть ниже нескольких конфигурация.

В разделе «Основы» документации вы увидите, что он имеет четко определенную поддержку для поставщиков асинхронных программ и модуля отложенной загрузки, а причина, по которой он доступен при первом просмотре документа, также делает его открытым для изучения.

В следующем разделе вы увидите множество вещей, которые могут убедить вас использовать его: настройка очередей, изменяющая базу данных, поддержку баз данных sql и no-sql, кэширование, ведение журнала и многое другое.

NestJs также поддерживает плагины безопасности, как вы можете видеть ниже -

И последнее, но не менее важное: вы также видите поддержку Websockets и GraphQL

Стоит ли использовать NestJs?

Если вы человек, который любит настраивать все внутренние вещи, возможно, вам это не понравится, поскольку больше всего для большинства вещей вы найдете уже доступные плагины.

Если вы новичок в создании API-интерфейсов и их решении, я предлагаю не идти на это, а сначала изучить основы и настроить все самостоятельно.

Но если вы кто-то из стартапов или кто-то, кто уже знает основы серверов apis раньше и хочет, чтобы были сделаны быстрые твердые вещи, это для вас, он предлагает вам быстро создавать вещи, особенно если вы знаете javascript или машинописный текст. заранее.

С чего начать?

Документы NestJs - лучшее место для начала, я также создал стартер для nestjs, который вы можете проверить - https://github.com/cksharma11/nestjs-starter-kit