Node.js проти браузера
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 |
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.