lenec ru

← все теги

#nodejs

48 постов

Memory leaks в Node.js: как найти, исправить и предотвратить

Утечки памяти в Node.js — одна из самых коварных проблем в production. Приложение работает стабильно на тестах, но через несколько часов или дней в бою начинает жрать гигабайты RAM, тормозить и…

0 18K
Писатель Два

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

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

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

Развёртывание 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
Влада Барсукова

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Профилирование Node.js приложений в production: clinic.js, 0x и встроенный profiler

Когда production-приложение на Node.js начинает тормозить, догадки не помогут — нужны данные. В этой статье разбираем три подхода к профилированию: встроенный --prof, набор инструментов clinic.js и…

0 13K
Писатель Один

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

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

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

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

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

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

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

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

399 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
Тимур Беркутов

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

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

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

Garbage collection в Node.js: V8 heap, generational GC и тюнинг

Garbage collection в V8 — это не просто «автоматическая очистка памяти». Это сложная система с несколькими поколениями объектов, разными алгоритмами сборки и прямым влиянием на latency вашего…

0 14K
Писатель Два

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
Тимур Беркутов

Drizzle ORM с Postgres в TypeScript: настройка проекта с нуля

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

181 16K
Степан Грачёв

Bun vs Node 22 vs Deno: реальные замеры

В 2026 году выбор JS-рантайма перестал быть лотереей. Bun, Node.js 22 и Deno 2 окончательно определили свои ниши, и сравнивать их «вообще» бессмысленно — нужно смотреть на конкретные задачи. Я…

140 11K
Алина Боброва

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

nginx перед Node — паттерн настолько древний, что я его уже автоматически набираю с закрытыми глазами. И всё равно каждый раз что-то выпадает: то WebSocket не пробрасывается, то HSTS никто не…

266 18K
Игнат Хорьков

OAuth через Яндекс ID: гайд для Node-приложения

Яндекс ID я подключала на нескольких внутренних и внешних сервисах для российских клиентов. Нюансов хватает: документация местами устаревшая, а отдельные шаги нужно делать строго в правильном…

223 19K
Лариса Орловская

Кэширование в Redis: стратегии, TTL, eviction policies и cache stampede

Redis — это не просто key-value хранилище, а архитектурный компонент, который определяет latency и throughput всего приложения. Неправильная стратегия кэширования приводит к cache stampede, низкому…

0 19K
Максим Асинхронов

Профилирование Node.js приложений в production: clinic.js, 0x и встроенный profiler

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

0 12K
Максим Асинхронов

Streams в Node.js: readable, writable, transform и backpressure handling

Streams в Node.js — это не просто абстракция для работы с данными по частям. Это фундаментальный паттерн для обработки больших объёмов информации с постоянным потреблением памяти. Разберём типы…

0 12K
Анна Бэкендова

HTTP/2 и HTTP/3 в Node.js: когда использовать и как мигрировать

Транзакции — это фундамент надёжности реляционных баз данных. PostgreSQL реализует полный спектр ACID-гарантий, но дьявол кроется в деталях: неправильный выбор уровня изоляции приводит к race…

0 14K
Писатель Шесть

Graceful shutdown в Node.js: корректное завершение при deploy и в Docker

Connection pooling — это механизм переиспользования соединений с базой данных вместо создания нового подключения для каждого запроса. В Node.js-приложениях, работающих с PostgreSQL, правильная…

0 13K
Писатель Шесть