lenec ru

← все теги

#nodejs

50 постов

Логирование в Node: Pino vs Winston на практике

Логи — первое, к чему я лезу, когда что-то поломалось. Поэтому к их формату и инструменту отношусь придирчиво. На моих проектах за последние пять лет были и Winston, и Pino, и встроенный console.log.…

219 12K
Влада Барсукова

gRPC в Node.js: protobuf, streaming, error handling, interceptors

REST API с JSON — стандарт для веб-сервисов, но в микросервисной архитектуре с высокой нагрузкой он показывает слабые стороны: текстовый формат, отсутствие строгой типизации, overhead HTTP/1.1. gRPC…

0 13K
Sergey Morozov

Развёртывание Node-приложения на VPS через systemd

В моём списке стандартных задач «поднять Node-сервис на VPS под systemd» — одна из самых часто повторяемых. Раз в пару недель кто-нибудь спрашивает «а как ты деплоишь без докера». Расскажу свой…

474 15K
Никита Тетеревин

SyntaxError: Unexpected token 'export' — что не так с настройкой

Запускаешь Node-скрипт или Jest-тест и получаешь:SyntaxError: Unexpected token 'export'Парсер увидел export, но не понял, что это. export — синтаксис ESM-модулей, и он работает только в одном из двух…

70 11K
Гавриил Барсуков

EACCES permission denied на macOS при npm — как починить правильно

Самый невинный сценарий: ставишь глобальный пакет через npm install -g и получаешь:npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/...'Привычный рефлекс — приписать…

330 18K
Лада Норкина

zsh: command not found: pnpm — починка PATH на macOS

Поставила pnpm на новый MacBook, открыла терминал, написала pnpm -v, и получила:zsh: command not found: pnpmСообщение значит ровно то, что говорит: zsh не нашёл бинарник pnpm ни в одной из…

118 12K
Лада Норкина

CORS error: No 'Access-Control-Allow-Origin' — реальные причины

Каждый раз, когда я вижу в чате «у меня CORS», я мысленно делю это на три кучи: настоящий CORS, фронт-баг, выдающий себя за CORS, и серверная ошибка, которая случайно похожа на CORS. Различать их…

425 10K
Олег Барсов

Module not found: Can't resolve 'fs' в Next.js — что не так

Эту ошибку получаешь, когда импортируешь Node-модуль (fs, path, net, crypto) в код, который собирается под браузер. У бандлера webpack нет браузерной реализации fs, и он честно говорит «не могу…

449 13K
Камилла Куницына

npm ERR! ERESOLVE unable to resolve dependency tree — что делать

Ошибка ERESOLVE unable to resolve dependency tree вылезает после npm install и обычно означает, что npm не может уложить версии пакетов так, чтобы все peer-зависимости совпали. Раньше npm в таких…

197 13K
Камилла Куницына

YandexGPT API: подключение из Node без боли

На одном из проектов я делал бота для внутренней техподдержки в большой компании, и заказчик попросил российскую LLM "чтобы не зависеть от санкций и блокировок". Выбор стоял между YandexGPT и…

282 15K
Мирослава Рыськова

nginx reverse proxy для Node: рабочий конфиг с TLS

На моём проекте Node-приложение слушает 127.0.0.1:3000, а наружу торчит nginx на 443. Так живёт уже несколько лет: обновления Node не трогают сертификаты, а правила лимитов и редиректов лежат рядом,…

360 13K
Игнат Хорьков

Streaming ответов от Claude API в Node: как сделать правильно

Когда я в первый раз прикрутил Claude к интерфейсу с чатом, ответ просто появлялся целиком через 4–8 секунд. Технически работало. Эмоционально — отвратительно. Любой, кто видел стриминг в ChatGPT,…

109 14K
Мирослава Рыськова

Astro: Cannot use import statement outside a module — что не так с конфигом

Эта ошибка вылетает чаще всего там, где её не ждёшь: при запуске astro.config.mjs, при попытке подключить какой-нибудь сторонний скрипт в <script> или при вызове Node-команды над файлом, где ты…

222 11K
Руслан Енотов

Tool use в Claude API: разбор на боевых примерах

Когда у меня впервые появилась задача "научи Claude дёргать наш бэкенд", я полез читать доку про tool use и сразу запутался. Документация у Anthropic нормальная, но между одиноким примером и реальной…

479 16K
Артур Гепардов

GitHub Actions: правильное кэширование зависимостей pnpm

Скорость CI на простых проектах решает: разработчик ждёт PR-checks, чтобы влить ветку. Если зависимости подтягиваются с нуля каждый раз — добавляются минуты ожидания на ровном месте. Расскажу, как я…

301 16K
Влада Барсукова

Connection pooling в Node.js: postgres, redis, HTTP keep-alive

Когда ваш Node.js-сервис начинает тормозить в проде — утечка памяти, внезапные CPU-спайки, медленные ответы — первый вопрос: где именно проблема? Логи молчат, метрики показывают только симптомы.…

0 13K
Sergey Morozov

Авторизация через Госуслуги (ЕСИА) для Node-приложения

ЕСИА (Единая система идентификации и аутентификации) — это про вход через Госуслуги. Подключение значительно сложнее, чем Яндекс или VK: нужен сертификат и ГОСТ-подпись, отдельная регистрация в…

286 17K
Лариса Орловская

Кеширование HTTP-ответов в Node.js: ETag, Cache-Control, stale-while-revalidate

Когда ваш Node.js-сервис начинает тормозить в проде — утечка памяти, внезапные CPU-спайки, медленные ответы — первый вопрос: где именно проблема? Логи молчат, метрики показывают только симптомы.…

0 11K
Константин Веб-Разработчиков

Как настроить SSR в Astro 5 с Node-адаптером

Если ты пришёл из Astro 3 или 4, где SSR включался флагом output: 'server' и работал почти из коробки, в пятёрке тебя ждёт пара сюрпризов. Не ломающих, но требующих внимания. Я недавно переводил…

60 13K
Никита Воробьёв

API Gateway паттерн: Kong, rate limiting, authentication, request transformation

Вы читаете 10 ГБ файл через fs.createReadStream, обрабатываете каждую строку и пишете в базу. Через минуту процесс падает с OOM. Проблема не в файле — проблема в том, что вы игнорируете backpressure.…

0 18K
Sergey Morozov

Circuit breaker pattern в Node.js: opossum, fallback strategies, monitoring

Вы разбили монолит на микросервисы, каждый со своей базой данных. Теперь простой заказ превращается в проблему: списать деньги, зарезервировать товар, создать доставку — три сервиса, три базы. Если…

0 17K
Константин Веб-Разработчиков

ERR_PNPM_PEER_DEP_ISSUES: как починить и не сломать lockfile

Сообщение ERR_PNPM_PEER_DEP_ISSUES от pnpm пугает многих. Текст длинный, в красном цвете, со списком пакетов, которые «должны быть, но их нет» или «должны быть другой версии, чем у тебя установлена».…

333 14K
Руслан Енотов

Drizzle relations API: подводные камни, которые ловят на проде

Relations API в Drizzle я потрогал ещё на бете и долго относился к нему с прохладцей: казалось, удобнее писать select с join руками, чем учить новый dsl. Спустя год работы с ним на двух проектах могу…

153 10K
Степан Грачёв

GraphQL vs REST: когда использовать, trade-offs, N+1 problem

API без документации — источник фрустрации для разработчиков и барьер для интеграции. Устаревшая документация в Confluence или Google Docs быстро расходится с реальностью кода. OpenAPI Specification…

0 17K
Константин Веб-Разработчиков

OpenTelemetry в Node-приложении: настройка трейсинга и метрик

OpenTelemetry — это про «сделай свои сервисы наблюдаемыми, не привязываясь к одному vendor-у». Я внедряла OTel на трёх Node-сервисах в этом году: один в Selectel, один в Yandex Cloud, один в свой…

117 10K
Влада Барсукова

Деплой на Timeweb Cloud Apps: гайд для Node-проекта

Timeweb Cloud — российский хостер с понятной панелью и приличной инфраструктурой. У них есть отдельный продукт Cloud Apps: PaaS-вариант, в котором ты привязываешь git-репозиторий, и платформа сама…

371 13K
Ярослав Медведев

OpenTelemetry tracing в Node.js: инструментируем микросервисы от и до

Микросервисная архитектура даёт гибкость, но усложняет отладку: один HTTP-запрос проходит через 5–10 сервисов, и без distributed tracing найти узкое место невозможно. OpenTelemetry — открытый…

0 14K
devnotes_ru

Rate limiting в Node без Redis: рабочие подходы и грабли

В половине случаев, когда мне нужен rate limiting, ставить Redis ради этого не хочется. Один сервис, маленькая БД, пара ручек, которые надо защитить от ddos и от слишком ретивых клиентов API.…

145 18K
Никита Тетеревин

Async patterns в Node.js: callbacks, promises, async/await, error handling

Node.js построен на асинхронной модели: операции ввода-вывода не блокируют event loop, а выполняются в фоне. За 15 лет эволюции JavaScript прошёл путь от callback hell к элегантному async/await.…

0 16K
Sergey Morozov

BullMQ: очереди задач в Node — практическая настройка

BullMQ — мой постоянный спутник в Node-проектах последние пару лет. Отправка писем, генерация PDF, синхронизация с внешним API, scheduled cron-задачи — всё это удобнее жить в очереди, чем висеть в…

482 17K
Никита Тетеревин

Fastify vs Express в 2026: производительность, плагины и миграция

Когда Redis упирается в лимит памяти, он не падает молча — он начинает вытеснять ключи по заданной стратегии. Выбор правильной eviction policy определяет, потеряете ли вы критичные данные или…

0 12K
devnotes_ru

Node.js event loop: как работает и почему блокируется — разбор с примерами

Event loop — сердце Node.js. Один поток обрабатывает тысячи соединений, пока каждый callback быстрый. Но стоит одному занять 200 мс — и весь сервер замирает. Разберём фазы цикла, разницу между micro-…

0 19K
Николай Ломов

ECONNREFUSED 127.0.0.1:5432 — Postgres не отвечает, что делать

Сообщение Error: connect ECONNREFUSED 127.0.0.1:5432 я ловил столько раз, что уже автоматически запускаю чек-лист, не задумываясь. Объясню, что значит ошибка, и пройдусь по всем причинам, которые…

399 10K
Руслан Енотов

Node.js + TypeScript: настройка проекта с нуля в 2026 — tsx, paths, ESM

Настроить TypeScript-проект на Node.js в 2026 — задача на 15 минут, если знаешь правильные опции. Но выбор между ESM и CJS, tsx и ts-node, tsc и tsup может запутать. Разберём актуальный стек: ESM по…

0 19K
Николай Ломов

Deno 2.0 vs Node.js vs Bun: выбираем JavaScript-рантайм в 2026

В 2026 году у JavaScript-разработчика три рантайма на выбор: проверенный Node.js, амбициозный Deno 2.0 и скоростной Bun. Каждый решает свои проблемы и имеет свои компромиссы. Разбираемся, что нового…

0 10K
Светлана Морозова

TypeError: Cannot read properties of undefined — что делать

Эта ошибка — самый частый гость на ревью кода и в проде. TypeError: Cannot read properties of undefined (reading 'X') или старый вариант «of null». Знакомо. Расскажу, как я её ловлю и какие у неё…

245 10K
Руслан Енотов

JWT vs session cookies в 2026: что брать в типичном веб-приложении

Этот спор тлеет уже лет десять. На любой ревьюшке pull-request с авторизацией обязательно встречается «давай JWT, чтобы stateless» против «нет, лучше серверные сессии». Я сидел по обе стороны и хочу…

289 10K
Тимур Беркутов

Pino vs Winston в 2026: бенчмарки, настройка и выбор логгера для Node.js

JWT стал стандартом де-факто для аутентификации в SPA и микросервисах. Но простота формата обманчива — за ней скрываются ловушки, которые превращают токен из инструмента безопасности в уязвимость.…

0 10K
Николай Ломов

Node.js Cluster и PM2: масштабирование приложения на все ядра CPU

Если вы строите контентный сайт — блог, документацию, лендинг — и устали от того, что Next.js тащит на клиент сотни килобайт JavaScript ради одной кнопки, пора посмотреть на Astro. Этот фреймворк по…

0 15K
Николай Ломов

OpenTelemetry в Node.js: трейсинг от разработки до прода

# Grafana Loki: централизованные логи без Elasticsearch Если вы устали от тяжеловесного ELK stack, который съедает гигабайты RAM и требует постоянного внимания к шардам — пора познакомиться с Grafana…

0 46
Дмитрий Соколов

Better Auth vs NextAuth vs Lucia: что выбрать в Node-проекте

За последние два года я перебрал в работе все три библиотеки на разных проектах. Где-то нужен был быстрый OAuth с Google и парой социалок, где-то — кастомная регистрация с подтверждением email и…

144 19K
Тимур Беркутов

WebSocket в Node.js: архитектура, масштабирование и альтернативы (SSE, Long Polling)

WebSocket — это полнодуплексный протокол для real-time коммуникации между клиентом и сервером. В отличие от HTTP, где клиент инициирует каждый запрос, WebSocket позволяет серверу отправлять данные…

0 11K
Ольга Фронтендова

Event loop в Node.js: phases, microtasks и оптимизация производительности

В высоконагруженных микросервисах rate limiting — это не просто защита от DDoS, а инструмент управления ресурсами. Он предотвращает перегрузку сервисов, защищает от злоупотреблений API и обеспечивает…

0 11K
Виктория Перформансова

Rate limiting в микросервисах: token bucket, leaky bucket и sliding window

В высоконагруженных микросервисах rate limiting — это не просто защита от DDoS, а инструмент управления ресурсами. Он предотвращает перегрузку сервисов, защищает от злоупотреблений API и обеспечивает…

0 18K
Елена Девопсова

Better Auth с Drizzle и Postgres: настройка с нуля

Этот сетап у меня сейчас стоит на трёх сервисах в проде, поэтому опишу его конкретно: какие файлы, какие команды, какие подводные. Цель — за час получить работающий вход через email/пароль и Google…

117 12K
Тимур Беркутов