Node.js — один із найбільших вибухів за останні кілька років. Можливість запускати JavaScript (з цією клієнтською мовою знайомі багато хто) на сервері є привабливою ідеєю. /p>
Node побудований на JavaScript-движку V8, такому ж як у Google Chrome, і сидить як серверна платформа у вашому додатку. Що це означає? У комплексі LAMP у вас є веб-сервер (Apache, Nginx та ін.) та робота з серверною мовою (PHP, Perl, Python) для побудови динамічного сайту. Серверне програмування використовується для створення прикладного середовища шляхом вилучення даних з бази даних (MySQL) і подальшої інтерпретації даних веб-сервером для отримання веб-сторінки.
Коли запитується нове з'єднання, Apache створює новий потік або процес для обробки цього запиту, що робить його багатопоточним. Часто ряд ваших дочірніх процесів простоює в очікуванні призначення нового запиту. Якщо ви налаштуєте сервер тільки для 50 очікуваних процесів і 100 вхідних запитів, у деяких користувачів виникне тайм-аут з'єднання, поки деякі з цих процесів не звільняться. Звичайно, є кілька способів впоратися з такою масштабованістю більш ефективно, але в цілому Apache буде використовувати один потік на кожен запит, так що для підтримки все більше користувачів вам в кінцевому підсумку потрібно все більше і більше серверів.
Ось де Node.js починає блищати. Node є подійно-керованою мовою, яка може грати ту ж роль, що Apache. Він інтерпретуватиме код на стороні клієнта для публікації веб-сторінки. Вони схожі на те, що кожне нове підключення запускає нову подію, але головна відмінність виходить з того факту, що Node є асинхронним та однопотоковим. Замість використання кількох потоків, які сидять в очікуванні функції або події для завершення, Node використовує лише один потік для обробки всіх запитів. Хоча на перший погляд це може здатися неефективним, насправді все працює добре, враховуючи асинхронну природу Node. Чому Node? з нашими програмами. Передача даних або програми, такі як чати, оновлення статусу або будь-який інший сценарій, за яким потрібно швидко показати дані в реальному часі — це те, з чим Node справляється найкраще.
Деякі приклади використання Node:
- чат-клієнт;
- оновлення користувачів у реальному часі (як у Твіттері);
- Стрічка новин;
- інтернет-магазин;
- додаток для опитування.
Після короткого огляду Node, давайте поринемо в нього і створимо дві програми:
Дуже простий додаток для демонстрації основ роботи з проектом Node.
Більш повноцінний додаток, в якому ми відобразимо популярні фотографії Instagram.