Как стать автором
Обновить
2.15

NestJS *

фреймворк для создания приложений на Node.js

Сначала показывать
Порог рейтинга
Уровень сложности

Как сделать приложение на NestJS, которое можно будет поддерживать спустя годы

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров4.9K

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

Читать далее
Всего голосов 7: ↑6 и ↓1+7
Комментарии16

Новости

Мой опыт создания frontend и backend приложений для моего стартапа

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров7.9K

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

В этой части я хочу рассказать как проектировал backend & frontend приложения.

Напомню что мы разрабатываем приложения для мерчанта, которое интегрируется в административную панель через iframe. Наше приложение должно иметь доступ к товарам, для того чтобы мерчант мог настроить маркетинговые кампании. Также приложение должно автоматически совершать публикации в Instagram.

Читать далее
Всего голосов 9: ↑7 и ↓2+7
Комментарии3

PrimeNG + NestJS + Yandex = речевая аналитика

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров834

Разработали речевую аналитику для контакт-центра. Распознавание речи через сервис Yandex Speechkit, а анализ полученного текста уже в контуре, на нашем решении. По ходу разработки встречались интересные моменты, которые постараюсь описать.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Коллекция утилит NestJS-mod для унификации приложений и модулей на NestJS

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров2.4K

Коллекция утилит NestJS-mod предназначена для унификации приложений и модулей NestJS, а также представляет новые логические возможности разделения обязанностей между модулями (System, Core, Feature, Integration, Infrastructure).

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

Истории

Как мы Kafka с NestJS microservices подружить пытались

Время на прочтение11 мин
Количество просмотров5.1K

Привет, меня зовут Валентин, я NodeJS-разработчик в Сравни. Моя команда делает Profile Service — внутренний продукт, который отвечает за быстрое получение и запись личных данных пользователей для экосистемы Сравни. Мы взаимодействуем с 20+ продуктовыми командами, которые дают нагрузку на сервис порядка 200-300 RPS; порядок обрабатываемых записей в БД – десятки миллионов.

В какой-то момент мы решили внедрить Kafka – де-факто стандарт транспорта, работающий в миллионах проектов. Что может пойти не так? Оказалось – вообще всё что угодно. 

В этой статье я расскажу, с какими неочевидными проблемами мы столкнулись при переходе на Kafka у нас в продукте, как мы чинили баги в NestJS Microservices и какие выводы сделали (спойлер: Kafka – не всегда хорошее решение). 

Приступим!

Читать далее
Всего голосов 17: ↑14 и ↓3+13
Комментарии12

Внедрение Guards NestJS. Аутентификация и авторизация на основе ролей

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров4.3K

На данный момент об инструменте guards защиты данных не так  много публикаций как он того заслуживает. В основном это техническая документация от разработчика https://docs.nestjs.com/guards . Для восполнения указанного пробела рассмотрим  наш  кейс по внедрению guards  для защиты данных от пользователя, который не имеет достаточно прав на их получение и/или изменение. Описание процедуры внедрения guards сопровождается примерами кода.

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

Итак, аутентификация - это процесс проверки личности пользователя или устройства, позволяющий получить авторизованный доступ к конфиденциальной информации или системам. То есть проверка, что вы действительно тот человек, за которого себя выдаёте.

Авторизация - это процесс определения наличия у пользователя или устройства необходимых прав для доступа к определённому ресурсу, в нашем случае к запросам (Mutation, Query...).

Функции guards

Guards определяют, будет ли запрос обрабатываться маршрутизатором или нет, в зависимости от определённых условий (в нашем случае ролей). Это часто называют авторизацией.  Авторизация обычно обрабатывается промежуточным программным обеспечением в традиционных приложениях Express. Но промежуточное ПО по своей природе ограничено. Оно не знает, какой обработчик будет выполнен после вызова next() функции. С другой стороны, guards имеют доступ к ExecutionContext экземпляру и, таким образом, точно знают, что будет выполняться дальше. Они спроектированы так,  чтобы вставить логику обработки точно в нужную точку цикла запроса/ответа и делать это декларативно.

Читать далее
Всего голосов 5: ↑3 и ↓2+3
Комментарии3

create-react-app, но для Go?

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров7.5K

Спустя какое-то время работы с front-end'ом я решил перейти в страшный лес, каким его всегда представляли всякие мемы - back-end. Конечно же я выбрал node.js и начал с express.js. Для меня было необычно, что не было инструмента (или же я плохо искал) для того, чтобы создавать корневую систему директорий самому. Я начал класть все в корень проекта и в этом и не было проблемы до момента, когда надо было расширять проект и начиналась путаница где лежит сервер, а где конфигурации для сервера, БД и т.д.

В силу новизны своих знаний я думал, что вся эта штука с src, config и public нужна конкретно для экосистемы отдельных технологий. В силу новизны своих знаний я думал. Я начал сам создавать директории, потом перешел на Nest.js и забыл про это. И вот я начал учить Golang, а там к тому же еще другая модель структуры проекта.

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

Читать далее
Всего голосов 7: ↑5 и ↓2+5
Комментарии7

NestJS для разрастающейся разработки: зачем так сложно и почему всё-таки да

Время на прочтение8 мин
Количество просмотров10K

Привет, Хабр. Меня зовут Денис Былинин, я архитектор в компании Сравни. 

Сегодня хочу рассказать, как мы пришли к использованию NestJS и какие сделали выводы после года работы с ним. Чтобы не уходить в абстракции, которые легко гуглятся, я сосредоточусь на том, как использование этого фреймворка в реальности влияет на разработку, а также на его плюсах и минусах, с которыми мы лично столкнулись в работе. 

Статья будет полезна руководителям разработки, системным архитекторам, тимлидам и всем, кто так или иначе заинтересован во внедрении новых фреймворков и инструментов в компании.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии15

WebSocket ориентированое Api на Nest.js

Время на прочтение3 мин
Количество просмотров12K

В этой статье я расскажу как создал модуль под Nest.js позволяющий писать классическое RESTFull API со swagger'ом но клиент будет полностью на WebSocket'ах, звучит странно не так ли? Но зато очень быстро и удобно по итогу)

Идея состоит в том, что вы пишите классическое документированное апи, со всеми типами и плюшками.

Читать далее
Всего голосов 6: ↑4 и ↓2+2
Комментарии11

GridComponent. Часть II. Котики, NestJS и чуть-чуть о Postman

Время на прочтение17 мин
Количество просмотров5.4K

Доброго дня, хабровчане!

Как и обещал, в продолжение своего пет-проекта по созданию грид-компонента опишу здесь создание backend части.

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии0

Почему я люблю и ненавижу NestJS?

Время на прочтение4 мин
Количество просмотров8.9K

NestJS прекрасный фреймворк под Node.js, вдохновлённый серьёзными фреймворками Spring, ASP.NET Core, Simfony.

Так что же там внутри прекрасного и ужасного?

Читать далее
Всего голосов 11: ↑5 и ↓6+1
Комментарии13

PrimeNG + NestJS = CRM — часть 1

Время на прочтение4 мин
Количество просмотров4K

Решили in-house разработать CRM систему. По ходу разработки встречались интересные моменты, которые постараюсь описать в нескольких статьях. В статьях постараюсь избежать банальностей типа: скачал, распаковал, запустил, и вот глядите, swagger из коробки. Таких статей, как и видео на Ютубах, уже очень много. Постараюсь поделиться просто интересными деталями, которые встречались по ходу разработки. Забегу вперед — систему настроили и запустили.

Читать далее
Всего голосов 5: ↑2 и ↓3-1
Комментарии2

Приложение для чата в реальном времени с помощью Nestjs и PostgreSQL

Время на прочтение9 мин
Количество просмотров19K

При помощи этого руководства вы научитесь добавлять функции чата в реальном времени в ваше веб-приложение Nestjs с использованием веб-сокетов. Мы создадим само приложение для чата, а также сохраним чаты пользователей в базе данных PostgreSQL.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+27
Комментарии4

Ближайшие события

12 – 13 июля
Геймтон DatsDefense
Онлайн
14 июля
Фестиваль Selectel Day Off
Санкт-ПетербургОнлайн
19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн

Слак бот на минималках ч2

Время на прочтение5 мин
Количество просмотров2.3K

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

Читать далее
Рейтинг0
Комментарии0

Руководство по NestJS. Часть 2

Время на прочтение25 мин
Количество просмотров24K



Привет, друзья!


Данная серия статей представляет собой мои заметки о NestJS — фреймворке для разработки эффективных и масштабируемых серверных приложений на Node.js. NestJS использует прогрессивный (что означает текущую версию ECMAScript) JavaScript с полной поддержкой TypeScript (использование TypeScript является опциональным) и сочетает в себе элементы объектно-ориентированного, функционального и реактивного функционального программирования.


Под капотом Nest по умолчанию использует Express, но позволяет переключиться Fastify.



Первая статья представляет собой обзор основных возможностей, предоставляемых NestJS, во второй рассматриваются основы работы с этим фреймворком, в третьей — техники и рецепты по интеграции NestJS с некоторыми популярными библиотеками, используемыми при разработке приложений на Node.js, наконец, четвертая статья представляет собой туториал по разработке относительно полноценного React/Nest/TypeScript-приложения.


При рассказе о Nest я буду придерживаться структуры и содержания официальной документации.


Это вторая часть руководства.


Вот ссылка на первую часть.

Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии2

Разрабатываем REST API с помощью TypeScript, NestJS, Prisma, AdminJS и Swagger

Время на прочтение12 мин
Количество просмотров14K



Привет, друзья!


В данном туториале мы разработаем простой сервер на NestJS, взаимодействующий с SQLite с помощью Prisma, с административной панелью, автоматически генерируемой с помощью AdminJS, и описанием интерфейса, автоматически генерируемым с помощью Swagger. Все это будет приготовлено под соусом TypeScript.


Репозиторий с кодом проекта.


Если вам это интересно, прошу под кат.

Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии9

Руководство по NestJS. Часть 1

Время на прочтение34 мин
Количество просмотров96K



Привет, друзья!


В этой серии из 3 статей я расскажу вам о Nest (NestJS) — фреймворке для разработки эффективных и масштабируемых серверных приложений на Node.js. Данный фреймворк использует прогрессивный (что означает текущую версию ECMAScript) JavaScript с полной поддержкой TypeScript (использование TypeScript является опциональным) и сочетает в себе элементы объектно-ориентированного, функционального и реактивного функционального программирования.


Под капотом Nest использует Express (по умолчанию), но также позволяет использовать Fastify.



В первой статье рассматриваются основы работы с Nest, во второй — некоторые продвинутые возможности, предоставляемые этим фреймворком, в третьей — приводится пример разработки простого React/Nest/TypeScript-приложения.


При рассказе о Nest я буду в основном придерживаться структуры и содержания официальной документации.


Это первая часть руководства.

Читать дальше →
Всего голосов 12: ↑10 и ↓2+10
Комментарии4

Prisma — как подключить в Nest-проекте

Время на прочтение5 мин
Количество просмотров5.1K

## Prisma - установка в проект

Установка поддержки Prisma в NestJS-проекте выполняется очень просто - при помощи двух команд.

Первая - устанавливает клиентскую часть Prisma:

$ npm i @prisma/client

... вторая команда - устанавливает cli-часть Prisma:

$ npm i -D prisma

После этого - нужно запустить команду для инициализации Prisma в текущем проекте:

$ npx prisma init

В результате в корне проекта будет создана папка prisma, внутри которой будет находиться файл schema.prisma для настройки подключения Prisma к базе данных (и не только).

Содержимое файла schema.prisma очень простое:

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии0

NestJS + GraphQL + Lambda

Время на прочтение8 мин
Количество просмотров8K

Цель данной статьи - создать GraphQL приложение, построенное на фреймворке NestJS. А также загрузить его в Лямбда-функцию при помощи Terraform. Надеюсь данный пример поможет многим сэкономить много времени.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии4

Новогодняя история одного телеграм-бота на NestJS

Время на прочтение10 мин
Количество просмотров20K

Можете представить Новый год без мандаринов, елки и подарков? А что насчет фильма «Один дома»? Каждый год мы наблюдаем за судьбой мальчика, который забаррикадировался дома и обороняет его от двух бандитов. Эта история стала неотъемлемой частью каждого Нового года, и предстоящий праздник не будет исключением. А что, если мы предложим вам помочь Кевину в обороне дома?

Мы решили написать небольшую игру в жанре Interactive Fiction на базе телеграм-бота. Целевой аудиторией стали разработчики. Участники игры будут две недели общаться с Кевином и помогать ему программировать устройства в умном доме, чтобы разрушить планы грабителей. Для работы выбрали NestJS. Расскажу подробнее, что из этого получилось.

Статья не станет учебным пособием о том, как писать телеграм-бота на Node.js с нуля. Весь базовый обучающий контент находится в свободном доступе. Эта история про наши подходы к решению проблем, с которыми пришлось столкнуться.

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии2
1