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

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 виконує ваш JavaScript в одному потоці, а ввід-вивід віддає операційній системі й забирає результати колбеками, коли ті готові. Однопотоковість означає, що ваш код ніколи не виконується у двох місцях водночас — але очікування відбувається не тут, тому Node дешево тримає тисячі простійних зʼєднань. Наслідок, який треба памʼятати: повільний цикл у вашому коді блокує всі запити, а не лише свій.

2

Чим відрізняються колбек, проміс і async/await?

Відповідь

Це один механізм на трьох рівнях зручності. Колбек — функція, яку викликають після завершення, і він погано вкладається. Проміс — обʼєкт, що представляє майбутнє значення, його можна чіпляти в ланцюг. async/await — синтаксис над промісами, що дозволяє писати код, який виглядає послідовним. Не змінюється базова модель: await не блокує потік, а поступається керуванням.

3

Що станеться, якщо забути await перед промісом?

Відповідь

Функція одразу продовжується з промісом у стані очікування замість значення, далі по коду виникає невизначена поведінка, а будь-яка помилка всередині стає необробленою відмовою і може покласти процес. Найчастіша форма — запис у базу, який виглядає успішним, бо ніхто не дочекався, щоб дізнатися про провал. Лінтери це ловлять, і правило варто увімкнути.

4

Як обробляти помилку всередині async-функції?

Відповідь

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

5

Чим dependencies відрізняються від devDependencies?

Відповідь

Перші потрібні, щоб застосунок працював, другі — лише щоб його зібрати й протестувати. Різниця виявляється, коли продакшн-образ ставиться з --omit=dev: інструмент збірки не в тому розділі або роздуває образ, або ламає збірку. Суміжне питання — package-lock: його комітять, бо саме він робить дві установки однаковими.

6

Що таке middleware в Express?

Відповідь

Функція, що отримує запит, відповідь і next, яка або обробляє запит, або передає далі. Порядок вирішує все: автентифікація, поставлена після захищуваного маршруту, не робить нічого, а обробник помилок реєструється останнім, щоб зловити те, що було до нього. Класичний баг — забути викликати next(), і симптом — запит, який ніколи не відповідає.

7

Чим process.env відрізняється від файлу конфігурації?

Відповідь

Змінні оточення приходять ззовні коду, тому та сама збірка працює у стейджингу і проді з різними значеннями, а секрети не потрапляють у репозиторій. Файл конфігурації зручний і версіонується — саме тому облікові дані в ньому жити не мають. Практична схема — схема валідації змінних під час старту, щоб відсутня падала одразу, а не на першому запиті.

🦎

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

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

Пройти інтерв'ю 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 Ruby on Rails🟣Junior .NET Backend Developer🔷Junior C++🟨Junior JavaScript