Skip to main content

Що означає «I/O» у контексті Node.js?

У контексті Node.js термін I/O означає Input/Output - тобто введення й виведення даних. Це загальне позначення будь-яких операцій, пов'язаних із взаємодією програми із зовнішнім світом:

  • читання й запис файлів (через fs),
  • запити до бази даних,
  • мережеві запити (HTTP, TCP, WebSocket тощо),
  • операції з консоллю чи користувачем.

Основна ідея:

Node.js побудований навколо неблокуючого (асинхронного) I/O. Це означає, що коли програма виконує, наприклад, читання файлу чи HTTP-запит, вона не чекає, поки операція завершиться - натомість:

  1. Запускає операцію (наприклад, читання файлу);
  2. Передає керування далі;
  3. Коли операція завершиться, викликається callback, Promise чи async/await, щоб обробити результат.

Приклад:

javascript
const fs = require('fs'); // Асинхронне (неблокуюче) читання файлу: fs.readFile('data.txt', 'utf8', (err, data) => { if (err) throw err; console.log(data); }); console.log('Цей лог виведеться раніше, ніж вміст файлу');

Тут Node.js не чекає завершення читання файлу, а продовжує виконувати код далі - це приклад асинхронного I/O.

Чому це важливо:

  • Не блокує потік виконання.
  • Дозволяє Node.js обслуговувати тисячі одночасних запитів.
  • Основа високої продуктивності при роботі з мережею й файлами.

Підсумок:

I/O (Input/Output) у Node.js - це операції введення-виведення (файли, мережа, база даних тощо), реалізовані асинхронно й неблокуюче, щоб ефективно використовувати однопоточну архітектуру.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.