Питання на співбесіді з Node.js (Middle) з відповідями

75 запитань для співбесіди з теми Node.js (Middle) - з правильними відповідями, поясненнями й посиланнями на документацію.

Пройти цей тест
  1. 1.Який список показує основні фази event loop у Node.js у правильному порядку?
  2. 2.У якому порядку буде виведення?
  3. 3.Що виконається першим усередині колбека вводу-виводу (наприклад, у fs.readFile)?
  4. 4.Чим небезпечні рекурсивні виклики process.nextTick?
  5. 5.Що за замовчуванням обробляє пул потоків libuv?
  6. 6.Обробник запиту 2 секунди виконує важкий для CPU цикл. Що відбувається з іншими запитами?
  7. 7.Що з цього може заблокувати event loop?
  8. 8.Як виміряти, наскільки завантажений event loop?
  9. 9.Що робить timer.unref()?
  10. 10.Що робить await setTimeout(1000), імпортований з node:timers/promises?
  11. 11.Навіщо віддавати файл на 2 ГБ через стріми, а не через readFile?
  12. 12.Які чотири базові типи стрімів є в Node.js?
  13. 13.Що таке backpressure у стрімах?
  14. 14.Чому stream.pipeline() кращий за ланцюжок .pipe()?
  15. 15.Як читати readable-стрім рядок за рядком або шматок за шматком через async/await?
  16. 16.Що таке Buffer?
  17. 17.Чим Buffer.alloc(10) відрізняється від Buffer.allocUnsafe(10)?
  18. 18.Що поверне Buffer.from("привіт").length?
  19. 19.Що таке objectMode у стрімах?
  20. 20.Як стиснути файл gzip за допомогою стрімів?
  21. 21.Що станеться, якщо EventEmitter згенерує error, а слухача error немає?
  22. 22.На що зазвичай вказує попередження MaxListenersExceededWarning?
  23. 23.Як дочекатися однієї події як проміса?
  24. 24.Чим операційні помилки відрізняються від помилок програміста?
  25. 25.Навіщо передавати cause, коли кидаєте помилку повторно?
  26. 26.Для чого в Node.js використовують AbortController?
  27. 27.Чому кожен вихідний HTTP-запит повинен мати таймаут?
  28. 28.Як оголосити middleware для обробки помилок в Express?
  29. 29.Що змінилося в Express 5 для async-обробників маршрутів?
  30. 30.Чи важливий порядок викликів app.use() в Express?
  31. 31.Для чого express.Router()?
  32. 32.Яка ключова особливість Fastify порівняно з Express?
  33. 33.Навіщо валідувати вхідні дані на сервері, якщо фронтенд уже їх перевіряє?
  34. 34.Які HTTP-методи ідемпотентні за визначенням?
  35. 35.Як добре повертати помилки API в єдиному форматі?
  36. 36.Як роздавати папку статичних файлів в Express?
  37. 37.Як треба зберігати паролі?
  38. 38.Що гарантує підпис JWT?
  39. 39.Який поширений недолік JWT порівняно із серверними сесіями?
  40. 40.Які атрибути cookie допомагають захистити сесійну cookie?
  41. 41.Чому в SQL-запитах треба використовувати параметри, а не склеювання рядків?
  42. 42.Що робить middleware helmet?
  43. 43.Навіщо обмежувати частоту запитів до ендпоінта входу?
  44. 44.Як згенерувати криптографічно стійкий випадковий токен?
  45. 45.Як порівнювати секретний токен із запиту зі збереженим?
  46. 46.Навіщо Node.js-застосункам пул з'єднань із базою даних?
  47. 47.Що таке проблема N+1 запитів?
  48. 48.Коли потрібна транзакція в базі даних?
  49. 49.Що таке ORM, як-от Prisma чи TypeORM?
  50. 50.Яка можливість Node.js дає працювати із SQLite без встановлення пакетів?
  51. 51.Для чого потрібні worker threads?
  52. 52.Чим child_process.exec відрізняється від child_process.spawn?
  53. 53.Що робить child_process.fork()?
  54. 54.Що робить модуль cluster?
  55. 55.Як замокати функцію у вбудованому тест-раннері?
  56. 56.Як протестувати ендпоінти Express-застосунку, не запускаючи справжній сервер на фіксованому порту?
  57. 57.Яка функція node:assert порівнює об'єкти за вмістом?
  58. 58.Що The Twelve-Factor App радить щодо конфігурації?
  59. 59.Що має зробити Node.js-сервер, отримавши SIGTERM?
  60. 60.Навіщо в логах ID запиту?
  61. 61.Які дані ніколи не можна писати в логи?
  62. 62.Чому в Dockerfile для Node.js-застосунку package.json і lock-файл копіюють раніше за код?
  63. 63.Для чого ендпоінт перевірки стану на кшталт /health?
  64. 64.Що робить поле exports у package.json?
  65. 65.Чи може CommonJS-код у сучасному Node.js зробити require() ES-модуля?
  66. 66.Що виражає поле engines у package.json?
  67. 67.Що таке npm workspaces?
  68. 68.Чим ризиковані скрипти postinstall у залежностях?
  69. 69.Коли Server-Sent Events (SSE) кращі за WebSocket?
  70. 70.Яка складність WebSocket, коли інстансів сервера кілька?
  71. 71.Навіщо черга задач, як-от BullMQ, для надсилання листів після реєстрації?
  72. 72.Для чого використовують AsyncLocalStorage?
  73. 73.Чому HTTP keep-alive важливий для сервісу, який часто звертається до інших API?
  74. 74.Чому для великих таблиць пагінація курсором часто краща за OFFSET?
  75. 75.Що таке шаблон cache-aside з Redis?