Node.js Backend | YeaHub
420 subscribers
128 photos
13 videos
332 links
Теория, подготовка к интервью и курсы для Node.js разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
#статьи
👍 tabs-broadcast

tabs-broadcast — это библиотека, которая помогает передавать сообщения между разными вкладками браузера в одном приложении. Представь, что у тебя несколько вкладок одного сайта открыты одновременно. Если в одной вкладке что-то поменялось, например, пользователь вошёл в аккаунт, то другие вкладки автоматически узнают об этом. Делимся статьей, где автор рассказывает про эти библиотеку.
Читать статью

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#видео
👨‍💻 MobX + React: Асинхронные запросы

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Array.includes

Метод includes() проверяет, содержится ли определенный элемент в массиве, и возвращает true или false.

Обрати внимание на синтаксис. searchElement – элемент, который нужно найти в массиве. fromIndex (необязательно) – индекс, с которого начинать поиск (по умолчанию 0). Возвращает true, если элемент найден в массиве. В противном случае – false.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#собес
🤔 Как работать с базой данных с помощью TypeORM?

TypeORM — это ORM, которая упрощает взаимодействие с базами данных. С помощью TypeORM можно определять сущности, управлять схемами и выполнять запросы через репозитории. В NestJS интеграция выполняется через модуль Tyрe0rmModule .

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🍓1
#статьи
🤓 Как 9.3 уязвимость ждала открытия 3 года

Я расскажу, как мы нашли в Next.js уязвимость с оценкой 9.3, которая спокойно пряталась в middleware аж три года, пока её никто не трогал.
Читать статью

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#статьи
😴 Что бы я хотел знать о Postgres, когда начал его изучать

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#видео
🛞 Что такое Nuxt.js?

Nuxt.js — это фреймворк для разработки сайтов и веб-приложений на основе Vue.js. Если Vue.js — это просто инструмент для создания интерфейсов, то Nuxt.js добавляет удобные «фишки» и делает работу с Vue быстрее и проще. В данном видео автор рассказывает об особенностях Nuxt.js.
📱 Смотреть видео

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#собес
🤔 Как использовать декораторы в контроллере NestJS?

Декораторы в NestJS используются для назначения методов контроллера, которые обрабатывают определенные НТТР-запросы. Примером является @Get () , который указывает, что метод будет обрабатывать GET-запрос. Декораторы также могут использоваться для извлечения данных из запроса, например, @Param(), @Query() и @Body() -

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
📞 Novu — это открытая платформа для управления уведомлениями, предназначенная для разработчиков!

Она предоставляет единый API для отправки уведомлений через различные каналы, включая встроенные уведомления в приложении (In-App), push-уведомления, электронную почту, SMS и чаты. С помощью Novu можно создавать настраиваемые рабочие процессы и определять условия для каждого канала, обеспечивая эффективную доставку уведомлений пользователям.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
😊 localeCompare

localeCompare() — это метод строк, который сравнивает две строки с учётом языка и алфавита. Благодаря данной статье ты узнаешь, как можно с помощью этого метода правильно и удобно сортировать строки с учетом языка.
Читать статью

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
#ЛитКод
Задача: 656. Coin Path

Вам дан целочисленный массив монет (1-индексированный) длины n и целое число maxJump. Вы можете перейти на любой индекс i массива coins, если coins[i] != -1 и вы должны заплатить coins[i] при посещении индекса i. Кроме того, если вы в данный момент находитесь на индексе i, вы можете перейти только на любой индекс i + k, где i + k <= n и k - значение в диапазоне [1, maxJump]. Изначально вы находитесь на индексе 1 (coins[1] не -1). Вы хотите найти путь, который достигнет индекса n с минимальной стоимостью. Верните целочисленный массив индексов, которые вы посетите в таком порядке, чтобы достичь индекса n с минимальной стоимостью. Если существует несколько путей с одинаковой стоимостью, верните лексикографически наименьший такой путь. Если невозможно достичь индекса n, возвращается пустой массив. Путь p1 = [Pa1, Pa2, ..., Pax] длины x лексикографически меньше, чем p2 = [Pb1, Pb2, ..., Pbx] длины y, если и только если при первом j, где Paj и Pbj отличаются, Paj < Pbj; если такого j нет, то x < y.

Пример:
Input: coins = [1,2,4,-1,2], maxJump = 2
Output: [1,3,5]


👨‍💻 Алгоритм:

1⃣Используйте динамическое программирование для нахождения минимальной стоимости до каждого индекса, начиная с первого.

2⃣Храните путь до каждого индекса для отслеживания наименьшего лексикографического пути.

3⃣Используя полученную информацию, восстановите путь с минимальной стоимостью до последнего индекса.

😎 Решение:
var minCostPath = function(coins, maxJump) {
const n = coins.length;
if (coins[0] === -1) return [];

const dp = new Array(n).fill(Infinity);
dp[0] = coins[0];
const path = Array.from({ length: n }, () => []);
path[0] = [1];

const heap = [[coins[0], 0]];

while (heap.length) {
heap.sort((a, b) => a[0] - b[0]);
const [current_cost, i] = heap.shift();
if (current_cost > dp[i]) continue;
for (let k = 1; k <= maxJump; k++) {
if (i + k < n && coins[i + k] !== -1) {
const new_cost = current_cost + coins[i + k];
if (new_cost < dp[i + k] || (new_cost === dp[i + k] && path[i].concat(i + k + 1) < path[i + k])) {
dp[i + k] = new_cost;
path[i + k] = path[i].concat(i + k + 1);
heap.push([new_cost, i + k]);
}
}
}
}

return dp[n - 1] === Infinity ? [] : path[n - 1];
};


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что содержит объект ошибки?

Объект ошибки в JavaScript содержит информацию, которая помогает диагностировать проблемы. Ключевые свойства объекта ошибки - это name (тип ошибки), message (текст ошибки) и stack (трассировка вызовов, ведущих к ошибке). Эти данные полезны для выявления причины ошибки и её устранения.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤯 Reubah — это веб-инструмент для редактирования изображений и конвертации документов!

Он представляет собой универсальное решение, поддерживающее множество форматов изображений (JPG, PNG, WebP, GIF, BMP) и документов (PDF, DOCX, DOC, ODT, RTF, TXT). Инструмент создан с акцентом на простоту использования и доступен через веб-интерфейс.

Reubah предлагает функции, такие как пакетная обработка, оптимизация изображений, удаление фона (в разработке) и изолированная среда обработки данных. Инструмент можно быстро установить с помощью Docker, что делает его удобным для локального использования или интеграции в другие проекты.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
👨‍💻 PairDrop — это кроссплатформенное приложение для обмена файлами, которое было разработано на основе AirDrop от Apple!

С его помощью можно передавать файлы по локальной сети через веб-браузер или использовать временные публичные комнаты для передачи через интернет. PairDrop совместим со всеми устройствами, которые имеют современные браузеры, и не требует установки, настройки или регистрации.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как обрабатывать ошибки в JavaScript?

B JavaScript ошибки обрабатываются с помощью блока try... catch . В блоке try размещается код, который может вызвать ошибку, а в блоке catch - инструкции для обработки этой ошибки. Также можно использовать finally, чтобы выполнить код независимо от того, возникла ошибка или нет. Обработку ошибок можно расширить с помощью кастомных ошибок.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#видео
😬 three.js: Работа с геометрией и объектами

Продолжаем делиться циклом видео, благодаря которым ты научишься пользоваться three.js. В этот раз автор рассказывает, как создавать объекты разной формы. Ты создашь сферу, куб, пончик и плоскую поверхность.
📱 Смотреть видео

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 Регулярные выражения: Обратные ссылки

Обратные ссылки в регулярках — это способ повторно использовать то, что уже найдено. Представь, что ты нашёл слово и хочешь проверить, встречается ли оно снова в строке — вот тут и выручают backreference.

Круглые скобки () создают захватывающую группу — кусок текста, который можно запомнить. Ссылки вида \1, \2, … позволяют обратиться к этому фрагменту. \1 — это «повтори то, что нашлось в первой группе (hello)».

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#статьи
😊 Как обрабатывать сделки Bitrix24 с помощью Flask и Node.js

Автор показывает, как связать Bitrix24 с Flask и Node.js, чтобы ловить обновления по сделкам, валидировать запросы, вытаскивать ID, проверять сумму и создавать задачи — и всё это без боли и рекурсии.
Читать статью

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Собес
🤔 Для чего нужны Async/await?

async/await - это синтаксис, который упрощает работу с промисами, делая асинхронный код более похожим на синхронный. Функция с ключевым словом async всегда возвращает промис, а await приостанавливает выполнение функции до получения результата промиса. Это делает код более читаемым и упрощает обработку ошибок.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#видео
😎 Nuxt.js: Обработка данных по URL

Продолжаем делиться циклом видео, благодаря которому ты научишься пользоваться Nuxt.js. В этот раз ты узнаешь, как использовать метод useFetch для работы с данными по URL.
Смотреть видео

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM