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

Node.JS *

Среда для запуска JavaScript-приложений

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

Декодируем protobuf загружая чанки loadable-components в NodeJS

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

У меня возникла задача спарсить данные с веб-сайта aboutyou.de. Я провел быстрый анализ страниц и обнаружил, что сайт не имеет серьезной защиты и вся необходимая информация доступна в HTML. На первый взгляд всё казалось окей. Но это, между прочим, не окей.

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

Новости

Интерфейс под один палец. Концепция ONE TOUCH

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

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

72120
Всего голосов 17: ↑17 и ↓0 +17
Комментарии 26

Как в Node.js контролировать потребление памяти при обработке сетевых запросов

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

Всем привет! Я Виктор Кугай, руководитель команды разработки спецпроектов в Тинькофф. Мы создаем геймификационные проекты, основанные на данных, чтобы познакомить пользователей с экосистемой компании и повысить узнаваемость бренда.

Расскажу, как с помощью Node.js Streams и механизма Back Pressure протокола TCP реализовать пакетную обработку сотен гигабайтов данных на машинах с жестким лимитом памяти.

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

Монорепозиторий с pnpm и typescript для фронтенда на React и бэкенда на Node.js

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

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

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

Истории

Гонка за скоростью: сравнение производительности ведущих фреймворков JavaScript в веб-разработке. Fastify, Express, Koa

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

Недавно я задался вопросом «Какой JS фреймворк самый быстрый». Я обратился с этим запросом в гугл и нашел очевидный ответ «это fastify!». Но почему именно он?.

Я практически сразу наткнулся на статью, результаты которой меня немного расстроили, так как в качестве дополнительной нагрузки на endpoint автор использовал вычисление ряда Фибоначчи, что, по моему мнению, не раскрывает всей сути сравнения. Тогда я решил провести собственное исследование.

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

Релиз Bun Shell (новый shell для JavaScript)

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

JavaScript — самый популярный скриптовый язык в мире. Так почему же так сложно запускать shell-скрипты на JavaScript?

Этим вопросом задались создатели Bun (альтернатива Node.js - очень быстрый runtime для запуска JS-кода, а также менеджер зависимостей, тест раннер, бандлер для фронтенда, транспилятор TypeScript и не только).

20 январе 2024 в рамках Bun v1.0.24 был представлен Bun Shell - встроенный интерпретатор shell-подобных скриптов. Под катом узнаем зачем это нужно и какой функционал уже доступен.

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

Как использовать Fetch API в Node.js, Deno и Bun

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

Получение данных с помощью HTTP-запроса — это фундаментальное действие веб-приложений. Возможно, вы делали такие вызовы в браузере, но Fetch API поддерживается в Node.js, Deno и Bun.

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

WS, но лучше

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

Привет, Хабр! В этой статье я хотел бы рассказать о методе работы с WebSocket, который я часто применяю в своих разработках. Если кратко, WebSocket — это, пожалуй, самое частое, что я использую в своих проектах. Мне очень важно, чтобы сервер мог общаться с клиентом в двустороннем режиме, но использование обычного WebSocket не всегда комфортно. Для решения этой задачи я часто пишу какой-либо обработчик, и, суммируя суть того, что именно делает этот обработчик, я решил написать небольшую и очень простую библиотеку.

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

Собираем метрики Node.js приложений в PM2 с экспортом в Prometheus

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

Ни для кого не секрет что для устойчивой и надежной работы node.js приложений необходимо проводить мониторинг их работы и делать полезные выводы глядя на их метрики. Это означает, что вы способны получать информацию о состоянии до возникновения проблем, таким образом, предотвращая сбои.

В этой статье я хотел бы рассказать о способе сбора статистики из node.js приложений, которые запущены в PM2, и экспорт этих данных в Prometheus.

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

Total.js и интеграция с ИИ

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

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

В этой статье я бы хотела обратиться к одному старенькому фрейморку, рассмотреть его особенности и фичи, которые способные выделить его на фоне другого софта. Так ли он хорош? А если хорош, то почему?

Не буду затягивать с буквами во вступлении и предлагаю перейти сразу к делу!

Приятного прочтения(:

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

Как создать YouTube GIF Maker с использованием Next.js, Node и RabbitMQ

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

В этом руководстве мы рассмотрим разработку веб-приложения по созданию GIF-файлов из видеороликов.

Функциональные возможности приложения:
- Создание GIF из видео на YouTube с определённым временным диапазоном.
- Предварительный просмотр результата перед выполнением фактической конвертации.

Компоненты системы:
- Клиентская часть на React (Next.js)
- Бэкенд-сервер на Node
- Node как Service Worker
- В качестве брокера сообщений — RabbitMQ
- Для хранения данных — MongoDB
- Для хранения медиафайлов — Google Cloud Storage

Полный код проекта можно найти на github, а по этой ссылке посмотреть демо-версию приложения.

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

Как сопоставить номера деталей с изображениями: Использование поиска Google и сравнения изображений в Node.js

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

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

В данной статье представлен практический метод сопоставления номеров запчастей с их изображениями. Используя поисковую систему Google, мы соберем изображения, основываясь на марке и номере запасной части, а затем применим методы сравнения изображений с помощью Node.js, чтобы выявить наиболее подходящие изображения для каждой запчасти.

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

Интеграция Поиска в Strapi: Meilisearch vs. Elasticsearch

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

Всем привет! На связи Геворг, фронтенд техлид Work Solutions. Сегодня расскажу про интеграцию поисковых сервисов Meilisearch и Elasticsearch в Strapi.

Strapi — это популярный open-source фреймворк для разработки серверов, а также создания гибких API. Однако, встроенные средства поиска могут быть ограничены. Разработчики могут искать способы интеграции с внешними поисковыми системами. Две такие системы — Meilisearch и Elasticsearch. Они предоставляют возможность реализации полноценного поиска в проектах.

В статье рассмотрим, как интегрировать эти системы, сравним их особенности, определим, для каких задач подходят. Примеры рассматриваются для strapi v3. Однако информация также актуальна для v4 с некоторыми незначительными различиями в интерфейсах взаимодействия.  

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

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

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

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн

End-to-end тестирование React приложения с помощью Playwright

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

Привет, я Лиза – веб разработчик в одной зарубежной компании. Хочу поделиться тем, как я автоматизировала регрессионное тестирование в рабочем проекте на React с использованием довольно нового фреймворка Playwright. Разберемся, почему именно этот фреймворк, какие подводные камни, как обойти авторизацию и кто этим пользуется. 

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

Простой GPT-ассистент в Telegram на базе Яндекса и Node.js

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

Всем привет! Это моя первая публикация на хабре, поэтому буду благодарен за любую обратную связь, которая поможет мне писать ещё лучше.

В статье вас ждёт "сборка" очень простой связки из распознавания и синтеза речи, а также запросов в модель YandexGPT на Node.js. Наш телеграм бот будет получать голосовое сообщение, а затем распознавать его, скармливать в модель GPT и синтезировать полученный ответ в голосовое сообщение.

Хочется начать с небольшого предисловия. В ходе написания этого простейшего решения я потратил кучу времени на попытку интегрироваться с популярным OpenAI ChatGPT, но мои нервы вышли из чата (обход блокировки, HTTPS прокси и т.п.), поэтому я перешёл к Яндексу. Он встречает нас дружелюбной консолью, понятной документацией и грантом на тестирование. В целом, если гранта по каким-либо причинам нет, то мне на все тесты хватило 20 рублей.

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

Банки.ру: от монолита до микрофронтендов

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

Всем привет! Меня зовут Марсель Абдрахманов, я фронтлид в Банки.ру. В статье хочу поделиться нашей историей ухода от монолита к микрофронтендам. У нас в Банки.ру большой отдел веб-разработки, за последнее время мы сильно выросли, ежедневно катим десятки релизов на прод. Расскажу, как мы относительно быстро внедрили микрофронтенды и перешли на архитектуру, которая позволила сократить время доставки обновлений на прод с двух дней до нескольких часов.

Если интересно, прошу под кат.
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 3

Утечки памяти, которые не утечки

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

Что случилось? Авария, ужас-ужас

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

В один прекрасный день боевое сопровождение приходит с ужасной проблемой — память в контейнерах Node.js течёт, сервисы падают с OOM каждый день, все пропало!

Да, картинка действительно удручающая. Всё время, когда есть нагрузка, память в контейнере прирастает и почти не очищается при снятии нагрузки. Все остальные метрики, которые мы собирали были в норме: event loop lag, использование CPU, active request, open handles. Прирастала только используемая память и незначительно увеличивалось время отклика сервиса.

Что-ж, выглядит как классическая утечка, надо искать источник.

Читать далее
Всего голосов 108: ↑107 и ↓1 +106
Комментарии 15

Синхронизация локальных изменений с kubernetes контейнером. Часть 2

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

В предыдущей статье показал вам как работают docker desktop watch, skaffold dev и tilt up, которые помогают синхронизировать локальные изменения в контейнер, что очень важно во время разработки.

На этот раз хочу показать DevSpace и Garden, эти инструменты очень похожи на Tilt, у них есть dashboard, как у Tilt, есть мгновенная синхронизация изменений и под катом вы увидите, как легко можно запустить проект в kubernetes и начать разрабатывать.

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

Zod умер. Да здравствует ajv-ts

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

TLRD: zod не подходил в проекте и решили сделать свой builder с помощью ajv в zod-like API. Поскольку гугление не показало никаких вменяемых результатов - было решено сделать свои костыли решения.

Если стало интересно - прошу под кат!

стало интересно, посмотрим что там!
Всего голосов 9: ↑7 и ↓2 +5
Комментарии 12

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

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

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

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

Вклад авторов

Работа