Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Node.js проти браузера». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**Node.js і браузер** запускають той самий рушій V8, але дають різні API: Node.js має доступ до файлової системи й мережі та не має DOM, браузер має DOM і Web API, але ізольований у пісочниці. **Ключове:** Node.js - серверне середовище без DOM, браузер - клієнтське середовище без доступу до файлової системи.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення## 1. Де виконується код | Середовище | Де працює | Основне призначення | |---|---|---| | **Node.js** | На сервері або локально на машині | Серверна логіка, API, автоматизація, утиліти | | **Браузер** | На стороні клієнта (у браузері користувача) | Робота з інтерфейсом, DOM, взаємодія з користувачем | ## 2. Доступні API та середовище | Можливість | Node.js | Браузер | |---|---|---| | Робота з файловою системою | Так, `fs` | Немає | | Робота з мережею (TCP, HTTP-сервер) | Так, `http`, `net` | Частково: тільки HTTP-запити через `fetch` | | Робота з DOM (HTML, елементи сторінки) | Немає | Так | | Web API (`fetch`, `localStorage`, `WebSocket`) | Частково (Node 18+ додав дещо) | Повний доступ | | Глобальні об'єкти | `global`, `process`, `__dirname` | `window`, `document`, `navigator` | ## 3. Модулі та залежності | Особливість | Node.js | Браузер | |---|---|---| | Система модулів | CommonJS (`require`) і ES Modules (`import`) | Тільки ES Modules | | Менеджер пакетів | npm, pnpm, yarn | Немає (потрібен збирач - Webpack, Vite тощо) | | Імпорт пакетів | Напряму з `node_modules` | Через збірку в один файл | ## 4. Архітектура та асинхронність - **Обидва середовища використовують рушій V8** - але Node.js має власну обгортку із системними API. - Node.js застосовує **event loop** для асинхронного I/O - читання файлів, запитів, процесів. - У браузері event loop обробляє події інтерфейсу - кліки, таймери, запити до сервера. ## 5. Безпека та доступ | Аспект | Node.js | Браузер | |---|---|---| | Доступ до системи | Так | Немає | | Ізоляція коду | Немає (код має доступ до диска й мережі) | Так (sandbox) | | Рівень довіри | Серверний код | Недовірене середовище (браузер користувача) | ## 6. Приклади відмінностей у коді **Node.js:** ```javascript // Робота з файлами const fs = require('fs'); fs.writeFileSync('text.txt', 'Hello from Node.js!'); ``` **Браузер:** ```javascript // Робота з DOM document.body.innerHTML = '<h1>Hello from Browser!</h1>'; ``` ## Короткий підсумок | Критерій | Node.js | Браузер | |---|---|---| | Середовище виконання | Сервер | Клієнт | | DOM / UI | Немає | Є | | Доступ до файлової системи | Так | Немає | | Безпека | Менш обмежений | Ізольований | | Основне завдання | Серверна логіка, API | Відображення інтерфейсу, UX |Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.