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

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

Junior · без досвіду / до 1 року

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

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

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

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

1

Поясніть event loop у Node.js. Які в нього фази?

Відповідь

Event loop по колу обробляє черги завершених операцій за фазами: таймери для setTimeout і setInterval, відкладені колбеки, poll для вхідного I/O, check для setImmediate і колбеки закриття. Між кожною фазою Node вичерпує чергу мікрозадач — спершу process.nextTick, потім колбеки промісів. Саме тому довга синхронна функція блокує всі запити на сервері: доки вона не поверне, не виконається нічого.

2

У чому різниця між process.nextTick() і setImmediate()?

Відповідь

process.nextTick ставить колбек у чергу до переходу event loop на наступну фазу, поперед мікрозадач промісів. setImmediate планує колбек на фазу check наступної ітерації. Тому nextTick завжди спрацьовує раніше, а рекурсивні виклики nextTick можуть повністю заморити event loop — через що setImmediate безпечніший як дефолт для відкладання роботи.

3

Що таке Promise? Поясніть різницю між Promise.all і Promise.allSettled.

Відповідь

Promise представляє значення, яке зʼявиться пізніше, і перебуває у стані pending, fulfilled або rejected. Promise.all резолвиться, коли завершилися всі вхідні проміси, але реджектиться одразу на першій відмові, відкидаючи решту результатів — це підходить, коли для продовження потрібні всі. Promise.allSettled завжди резолвиться, віддаючи статус і значення по кожному елементу, що годиться для незалежних операцій, де одна помилка не має скасовувати решту.

4

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

Відповідь

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

5

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

Відповідь

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

6

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

Відповідь

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

7

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

Відповідь

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

🦎

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

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

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

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

Middle Node.js BackendSenior Node.js BackendУсі питання Node.js Backend

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

🔍Junior QA Manual🤖Junior QA AutomationJunior Java Backend🐍Junior Python Backend🐘Junior PHP Backend🦫Junior Go Backend⚛️Junior React Frontend💚Junior Vue Frontend🅰️Junior Angular FrontendJunior Next.js