AI
prepair.app
Пройти інтерв'ю →
EnglishРусскийУкраїнська
🟢

Senior Node.js Backendпитання на співбесіді Node.js

Senior · 5+ років досвіду

Співбесіда Node.js крутиться навколо event loop, асинхронних патернів, Express або NestJS і наслідків однопотокового рантайму. Нижче — найчастіші питання з еталонними відповідями. Senior: архітектуру, трейд-офи, менторство та прийняття рішень.

Теми для підготовки

Event loop та його фази
Проміси й async/await
Streams і buffers
Express / NestJS
Middleware та обробка помилок
JWT і автентифікація

7 питань рівня Senior з відповідями

1

Як обробляти помилки в async/await? Що станеться при unhandled rejection?

Відповідь

Очікувані виклики загортають у try/catch або вішають .catch на повернений проміс. В Express помилка, кинута всередині async-обробника, не перехоплюється фреймворком, якщо її не передати в next(), тому зазвичай використовують обгортку або express-async-errors. Необроблений реджект у сучасних версіях Node за замовчуванням завершує процес, і це усвідомлена поведінка — стан процесу невідомий, його треба перезапустити.

2

Що таке streams і коли їх використовувати замість читання файлу цілком?

Відповідь

Streams обробляють дані порціями, тому витрата памʼяті не залежить від розміру корисного навантаження, а перший байт можна віддати до того, як прочитано останній. Читання двогігабайтного файлу в Buffer зʼїдає памʼять і затримує відповідь; при використанні pipe той самий файл тече прямо клієнту. Ще streams композуються через pipe або pipeline, дозволяючи вибудувати ланцюжок розпакування, перетворення та виводу з автоматичною обробкою backpressure.

3

Що таке middleware в Express? Як працює next()?

Відповідь

Middleware — це функція, що приймає запит, відповідь і next, яка виконується в порядку реєстрації й утворює конвеєр. Виклик next() передає керування наступному middleware; якщо його не викликати й не надіслати відповідь, запит зависне. Передача аргументу в next() перестрибує до обробника помилок, який розпізнається за наявністю чотирьох параметрів.

4

Як Node обробляє CPU-інтенсивні задачі? Що таке worker threads?

Відповідь

Оскільки JavaScript виконується в одному потоці, важке обчислення блокує всі очікуючі запити. Worker threads виконують JavaScript у паралельних потоках усередині того ж процесу, обмінюючись повідомленнями та спільними буферами, що підходить для хешування, обробки зображень або парсингу. Альтернативи — винести роботу в окремий сервіс або чергу задач; кластеризація лише додає процеси й не пришвидшує один запит.

5

Що таке JWT? Де його зберігати і які є ризики?

Відповідь

JWT — це підписаний токен із набором тверджень, що дозволяє серверу автентифікувати запит без походу за сесією. Зберігання в localStorage робить його вразливим до XSS; зберігання в куці з httpOnly, Secure і SameSite закриває XSS, але потребує захисту від CSRF. Глибший компроміс — відкликання: stateless-токен дійсний до завершення терміну, тому в чутливих системах використовують короткоживучі access-токени з refresh-токенами та серверним списком відкликаних.

6

У чому різниця між require і import? Що таке CommonJS і ESM?

Відповідь

CommonJS require синхронний, розвʼязується в рантаймі й може викликатися умовно всередині функції. ESM import статичний, піднімається вгору й аналізується до виконання, що відкриває tree shaking і top-level await. Формат пакета задається через "type": "module" або розширення .mjs і .cjs; ESM може імпортувати CommonJS, а зворотне потребує динамічного import(), бо require не вміє завантажувати асинхронний граф модулів.

7

Як реалізувати graceful shutdown?

Відповідь

За SIGTERM перестають приймати нові зʼєднання через server.close(), дають завершитися поточним запитам, а потім закривають пули БД, консьюмерів черг і таймери перед виходом. Таймаут примусово завершує процес, якщо щось зависло, щоб контейнер не застрягав. Без цього деплой рве запити на середині й може лишити транзакції або повідомлення черги в неузгодженому стані.

🦎

Прочитати відповіді недостатньо

На співбесіді ти говориш вголос під тиском. Кем поставить ті самі питання, оцінить кожну відповідь і покаже, що саме підтягнути.

Пройти інтерв'ю Senior Node.js Backend →
Безкоштовно · 3 інтерв'ю на місяць

Інші рівні — Node.js Backend

Junior Node.js BackendMiddle Node.js BackendУсі питання Node.js Backend

Інші спеціалізації

🔍Senior QA Manual🤖Senior QA AutomationSenior Java Backend🐍Senior Python Backend🐘Senior PHP Backend🦫Senior Go Backend⚛️Senior React Frontend💚Senior Vue Frontend🅰️Senior Angular FrontendSenior Next.js