руководства по node.js
Введение в Node.js
Это учебник по Node.js от w3resource. Вы узнаете о том, что такое Node.js, истории, возможностях, как установить Node в Windows и в Linux, после чего подробно обсудите каждый из модулей Node.js API. К концу этого учебного курса вы сможете самостоятельно разрабатывать и развертывать приложения Node.js.
Что такое Node.js
Node.js - это среда для разработки масштабируемых приложений, которые могут эффективно обрабатывать десятки тысяч одновременных клиентских подключений.
Он предназначен для простого создания масштабируемых сетевых программ. Таким образом, его можно использовать для разработки веб-приложений, отвечающих за высокий трафик.
Node.js основан на V8 JavaScript Engine.
история
На Европейском ЗАО 2009 года Райан Даль представил проект, над которым он работал. Целью проекта было создание фреймворка для простого создания масштабируемых сетевых приложений. Платформа, которую он использовал, - V8 JavaScript Engine. Рэйн сначала попробовал C, затем язык программирования Lua, прежде чем он использовал JavaScript. для этого проекта. В отличие от других реализаций JavaScript на стороне сервера (например, Jaxer), Райан использовал модель программирования, управляемую событиями (скоро мы увидим, что это такое). Проект был назван Node.js и широко известен как Node.
Проект получил огромную оценку сразу после демонстрации и с тех пор не оглядывался назад. Это достигло экспоненциального роста так же как принятия в течение короткого промежутка времени.
Основная концепция
Управляемый событиями / асинхронный над потоком
В отличие от традиционных серверных программ (таких как PHP, Java), каждое клиентское соединение создает поток ОС (наименьшая единица обработки, запланированная операционной системой), которая занимает около 2 МБ памяти. Таким образом, если вы используете систему, скажем, с 4 ГБ ОЗУ, максимальное количество возможных одновременных подключений составляет 2000 (то есть 4000/2). Чтобы поддерживать больше одновременных подключений, вам нужно увеличить объем оперативной памяти или количество систем. Что увеличивает стоимость. Технически это также становится утомительным, поскольку, если вы используете несколько систем для запуска приложения, общие ресурсы должны быть общими для всех систем.
Вместо этого, Node использует программирование на основе событий. Каждое соединение использует короткую память при запросе соединения. Узел использует обратные вызовы (ссылка на исполняемый код или часть исполняемого кода), чтобы сообщить ОС, что запрашивается новое соединение. В остальное время это не мешает работе ОС. Таким образом, использование памяти намного эффективнее, чем модель на основе потоков.
Нет замков над тупиками
Когда два или более процессов (экземпляр выполняемой компьютерной программы) совместно используют один и тот же ресурс, один должен быть заблокирован, чтобы выделить ресурс (например, память) другому. Это может привести либо к ситуации, когда каждый ожидает другого, чтобы освободить ресурс (то есть к тупику), либо вам придется написать очень эффективный код для управления этим. Узел свободен от этого. Он не выполняет (почти) никаких операций ввода-вывода напрямую. Итак, замков нет. Это облегчает написание кодов для Node.
Цикл событий как языковая конструкция, чем библиотека
На дизайн Node влияют Twisted из Python и Event Machine из Ruby. Но в отличие от них, Node не использует Event Loop (это программный шаблон, который облегчает неблокирующий ввод / вывод) в качестве библиотеки. Это очень большая часть самого языка. И нет никакого вызова, чтобы начать и закончить цикл событий также.
Использование Node.js в реальном мире
Хотя и довольно молодой, Node.js уже используется многими организациями, проектами и приложениями. Следующий список показывает, для каких приложений используется Node:
- HTTP прокси
- IRC Бот / Чат / Обмен сообщениями
- Веб-сервис (данные)
- анализ в реальном времени (данные, электронная почта)
- Клиент другого веб-сервиса (например, клиент Twitter)
- сотрудничество в реальном времени
- Журнал и мониторинг журнала
- Сетевое программное обеспечение для удовлетворения конкретных требований клиента (например, книга бронирования для рестораторов, книга оценок)
- Сервер приложений
Преимущества использования Node.js
- Управляемый событиями и неблокирующий, поэтому обрабатывает одновременные соединения более эффективно, чем его коллеги.
- Здорово иметь общий язык как на клиенте, так и на сервере.
- Событие лучше, если оно используется с базами данных, такими как MongoDb, тогда это 100% JavaScript, от базы данных до сервера и клиента.
- Чистый, функциональный API.
Недостатки использования Node.js
Поскольку Node очень молод, многие драйверы баз данных (необходимые для подключения к базам данных) и модули (для добавления некоторых специфических функций) нестабильны. Это все еще нестабильно на платформе Windows. Но Node имеет очень активное и отзывчивое сообщество и надеется, что эти проблемы будут обособлены в ближайшем будущем.
Новый контент: Composer: менеджер зависимостей для PHP , R программирования