На конференции JSConf 2009 года молодой программист по имени Райан Даль показал людям проект, над которым он работал, платформу для JAVASCRPT, основанную на двигателе Google V8, которая предоставляет набор петлей событий и низкие интерфейсы приложений IO (API). В отличие от других серверных платформ, JavaScript рожден, чтобы быть управляемым событиями, и этот проект значительно снижает сложность написания приложений, управляемых событиями, поэтому он быстро вырос и стал популярным на невероятной скорости и применяется к реальным проектам. (Джек: Этот перевод не очень надежен, оригинальный текст: этот проект не был похож на другие серверные платформы JavaScript, где все примитивы ввода/вывода были ориентированы на события, и обойти его.)
Этот проект называется node.js, который разработчики используют для вызова его узла. Node предоставляет чисто не блокирующий инструментарий, управляемый событиями для создания высокочастотных приложений.
Примечание. Узел позволяет легко создавать быстрые и масштабируемые сетевые сервисы.
С тех пор, как он был представлен Райаном Далом, Узел привлек широкое внимание отрасль. Они начали развертывание быстрых и масштабируемых сетевых сервисов с узлом. Узел такой привлекательный.
С одной стороны, из -за JavaScript JavaScript является наиболее широко используемым языком программирования на этой планете. Большинство веб -программистов использовали JavaScript со стороны браузера, а сторона сервера - очень естественное расширение.
С другой стороны, поскольку узел миниатюрный и милый, основной набор функций узла очень мал, а существующие API очень изысканы, что минимизирует сложность для разработчиков. Если вы хотите создать более сложные приложения, вам просто нужно выбрать и установить несколько сторонних модулей, которые вам нравятся.
Существует также причина, по которой узел настолько привлекательна, что его легко начать, вы можете загрузить и установить его за считанные минуты и запустить его.
Обычно вы можете установить узел в соответствии с шагами на официальном веб -сайте (http://nodejs.org), который поддерживает Windows, Linux, Macintosh и Solaris.
Установите узел на Windows
Узел поддерживает Windows с версии 0.6.0. Чтобы установить узел в Windows, просто загрузите Node-v*.msi с http://nodejs.org/#download, а затем дважды щелкните, чтобы запустить. Затем вы можете встретить диалог безопасности, похожий на рисунок 1-1.
Рисунок 1-1
Нажмите кнопку «Запустить», и после завершения загрузки появится другое диалоговое окно «Безопасность» (Рисунок 1-2), напомнив, уверены ли вы в операции.
Рисунок 1-2
Если вы согласны, появится мастер установки узла (рис. 1-3). Нажмите рядом, чтобы запустить установку узла, и установка будет завершена за короткое время! См. Рисунок 1-4
Рисунок 1-3
Рисунок 1-4
Установите на Mac OS X
Если вы используете Mac OS X, вы можете использовать мастер установки для установки узла. Во-первых, перейдите по адресу http://nodejs.org/#download, чтобы загрузить Node-v*.pkg. После загрузки дважды щелкните, чтобы запустить. Вы увидите первое диалоговое окно мастера установки, см. Рисунок 1-5
Рисунок 1-5
Нажмите «Продолжить», чтобы установить, и мастер попросит вас ввести пароль пользователя системы. После подтверждения установка начнется. Через некоторое время узел снова установлен! См. Рисунок 1-6
Рисунок 1-6
Установить с исходным кодом
Если вы используете систему UNIX, вы можете установить ее, скомпилируя исходный код. Сначала вам нужно выбрать версию узла, которую вы хотите установить, затем загрузить соответствующий исходный код и создать его, установить и запустить узел.
Примечание. Узел полагается на несколько сторонних кодовых баз, но, к счастью, большинство из них уже включены в пакет выпуска узла. Если вы начнете строить из исходного кода, вам нужны следующие две вещи:
1.python (версия 2.4 или выше) - инструмент сборки, выпущенный с узлом, требует среды Python для запуска
2. Libssl -Dev - Если вы планируете использовать шифрование SSL/TLS, вам необходимо установить это. LIBSSL - это библиотека классов, используемая инструментом OpenSSL. В системах Linux и Unix вы обычно можете использовать диспетчер пакетов системы для его установки. LIBSSL предварительно установится под Mac OS X, поэтому, если вы используете Mac OS X, вам обычно больше не нужно устанавливать LIBSSL.
Выберите версию узла
Обычно есть две разные версии узла для загрузки на официальном веб -сайте Nodejs.org: стабильная версия и последняя версия.
Для узла минимальный бит номера версии представляет стабильность этой версии, в стабильной версии используются ровные числа (такие как 0,2, 0,4, 0,6), а нестабильная версия использует нечетные числа (0,1, 0,3, 0,5, 0,7).
Не только нестабильная версия функционально нестабильна, но и API также может быть изменен в последующих версиях, а API, выпущенные в стабильной версии, не будут изменены. Для каждой стабильной ветви новый патч включает в себя не только исправления ошибок, но и изменения в API в нестабильной версии.
Если вы не хотите протестировать новые функции в последней нестабильной версии, вам следует выбрать последнюю стабильную версию. Нестабильная версия похожа на поле битвы для команды Node Core для тестирования новых функций.
Хотя все больше и больше проектов и компаний успешно использовали узлы в своих продуктах (отображается официальная домашняя страница веб-сайта), вам, возможно, придется научиться терпеть изменения в API от нестабильной версии до стабильной версии. Конечно, это цена обучения новой технологии.
Скачать исходный код узла
Теперь вы знаете, какую версию загрузить, затем перейдите на официальный веб -сайт http://nodejs.org, чтобы найти соответствующий пакет смолы, а затем скопировать ссылку для загрузки. Если вы используете систему UNIX, ваша система может установить WGET, что означает, что вы можете загрузить ее с помощью команды Shell:
Кода -копия выглядит следующим образом:
$ wget http://nodejs.org/dist/v0.6.1/node-v0.6.12.tar.gz
Если у вас нет установки WGET, вам может потребоваться использовать Curl:
Кода -копия выглядит следующим образом:
$ curl o http://nodejs.org/dist/v0.6.1/node-v0.6.12.tar.gz
Если у вас нет ни одного из этих инструментов, вам нужно найти другие способы загрузить пакет TAR в свой локальный каталог, например, через браузер или через локальную сеть.
(Последняя стабильная версия примеров в этой книге при написании: 0.6.12)
Построить узел
Теперь, когда у нас есть исходный код, мы можем использовать его для создания исполняемого файла узла. Во -первых, вам нужно расслабиться на разарке, который вы скачали ранее:
Кода -копия выглядит следующим образом:
$ tar xfz node-v0.6.12.tar.gz
Затем введите исходный каталог:
Скопируйте код следующим образом: $ cd node-v0.6.12
Конфигурация:
Скопируйте код следующим образом: $./Настройка
Если все пойдет хорошо, вы увидите подсказки для успеха:
Скопируйте код следующим образом: «Настройка» законченно закончена (9.278s)
Тогда вы можете начать компиляцию:
Кода -копия выглядит следующим образом:
$ make
После компиляции будет следующая подсказка:
Кода -копия выглядит следующим образом:
Строительствуйте успешно (0,734)
Установите узел
При построении используйте следующую команду для установки узла:
Скопируйте код следующим образом: $ make install
Эта операция скопирует исполняемый файл узла в/user/local/bin/node
Если вы столкнетесь с проблемами разрешения, добавьте Sudo перед командой и выполните его как пользователь root:
Кода -копия выглядит следующим образом:
$ sudo make install
Запустить узел
Теперь, когда работает узел, вы можете просто испытать интерфейс командной строки Node (CLI: интерфейс командной строки), просто вызовите исполняемый файл узла:
Кода -копия выглядит следующим образом:
$ Узел
Эта операция запустит интерфейс взаимодействия командной строки узла и будет ждать вашего ввода. Введите следующую команду, чтобы узел что -то сделать:
Кода -копия выглядит следующим образом:
> console.log ('Привет, мир!');
Привет, мир!
> не определен
Вы также можете запустить файл скрипта JavaScript. Например, вы создаете файл с именем hello_world.js и содержит следующий контент:
Кода -копия выглядит следующим образом:
console.log («Привет, мир!»);
Затем используйте имя файла этого скрипта в качестве первого параметра параметра для вызова исполняемого файла узла:
Кода -копия выглядит следующим образом:
$ node hello_world.js
Привет, мир!
Наконец, используйте Ctrl+D или Ctrl+C, чтобы выйти из интерактивного интерфейса командной строки узла.
Подготовьте и используйте диспетчер пакетов узлов
До сих пор вы можете использовать только языковые функции и основные функции самого узла, поэтому у большинства программных платформ есть система для загрузки, установки и управления сторонними модулями. В узле мы используем диспетчер пакетов узлов (NPM: Manager пакета узлов)
NPM содержит три части: кодовая база для хранения сторонних пакетов, механизм управления локальными установленными пакетами и стандарт для определения зависимостей пакетов. NPM предоставляет общественную службу регистрации, которая содержит все пакеты, опубликованные всеми, и предоставляет инструмент командной строки для загрузки, установки и управления этими пакетами. Вы можете сформулировать другие сторонние пакеты, на которые нужен ваш пакет или приложение для полагаться в соответствии со стандартами формата пакета Node.
Хотя вы можете начать использовать Node без понимания NPM, если вы хотите использовать сторонний пакет, вы должны изучить его, потому что сам узел обеспечивает только некоторые API низкого уровня. Использование сторонних модулей может значительно уменьшить сложность развития и не нужно кодировать лично. NPM позволяет загружать и использовать модули в песочнице, и вы можете экспериментировать с тем, что вас интересует, не беспокоясь о загрязнении среды глобальной упаковки.
NPM и узел ранее должны были быть установлены независимо. Со времени версии 0.6.0 NPM была включена в пакет установки узла.
Используйте NPM для установки, обновления и удаления пакетов
NPM очень мощный, и вы можете использовать его во многих отношениях. Его кодовая база в центре управляет всеми общественными модулями, и вы можете получить к нему доступ через http://search.npmjs.org. Автор модуля с открытым исходным кодом Node может опубликовать свой собственный модуль в NPM, а другие могут загрузить и установить этот модуль, используя имя модуля в описании установки пакета.
Эта часть контента включает в себя некоторые общие операции для установки и удаления пакетов. Зная, что этого достаточно, чтобы заставить вас начать управлять сторонними пакетами, от которого зависит ваше собственное приложение. Несмотря на это, вам нужно сначала понять разницу между этими командами в «глобальных» и «локальных» режимах и тем, как они влияют на зависимости и поиск модулей.
Глобальные и локальные способы модулей NPM
Существует два основных способа работы NPM: глобальный и локальный. Эти два режима будут влиять на структуру каталога пакета и порядок, в котором узлы загружают пакет.
Локальный режим - это режим работы по умолчанию NPM. В этом режиме NPM работает только в рабочем каталоге и не вызовет общеобразовательные модификации. Этот режим позволяет вам устанавливать и тестировать модули в программе узлов, не влияя на другие программы узлов на вашем компьютере.
Global Mode подходит для общественных модулей, которые будут использоваться многими программами и всегда загружаются во всем мире, например, инструменты командной строки, которые не будут использоваться непосредственно приложениями.
Если вы не знаете, какой режим установить модуль, вам следует использовать локальный режим. Если автору модуля нужен модуль, который будет установлен во всем мире, он обычно указывает на него в инструкции по установке.
Глобальный режим
Если вы используете каталог по умолчанию при установке узла, в глобальном режиме NPM установит пакет в/usr/local/lib/node_modules. Если вы выполните следующую команду, NPM будет искать и загрузить последнюю версию с именем Sax и установить ее в каталог/usr/local/lib/node_modules/sax.
Скопируйте код следующим образом: $ NPM Установить G Sax
ПРИМЕЧАНИЕ. Если у вашего текущего пользователя оболочки не хватает разрешений, вам необходимо использовать пользователя ROY для входа в систему или использования SUDO для выполнения команды:
Кода -копия выглядит следующим образом:
$ sudo npm установить G Sax
Затем, когда вам нужен модуль SAX в скрипте узла, используйте следующее оператор для загрузки:
Кода -копия выглядит следующим образом:
var sax = require ('sax');
Если вы не установили SAX в каталоге приложений в локальном режиме, Node будет искать модуль с именем SAX в предыдущем каталоге установки, в противном случае локальная версия будет загружена первой.
Режим по умолчанию -локальный режим, поэтому вам необходимо добавить флаг -G после команды NPM для включения глобального режима.
Локальный режим
Локальный режим является рекомендуемым режимом по умолчанию механизма зависимости пакета узлов. В этом режиме все, установленное NPM, находится в текущем рабочем каталоге (корневый каталог не является исключением), не влияя на каких -либо глобальных настроек. Этот механизм позволяет настроить модули зависимости приложения и их версии один за другим, не беспокоясь о загрязнении пространства глобального модуля. Это означает, что у вас могут быть два приложения, которые зависят от разных версий одного и того же модуля без конфликта.
В этом режиме NPM использует каталог NODE_MODULES в текущем рабочем каталоге для хранения модулей. Например, ваш текущий рабочий каталог IS/home/user/apps/my_app, NPM будет использовать/home/user/apps/my_app/node_modules для хранения всех локальных модулей. Это означает, что если вы используете имя модуля для обозначения модуля в вашем коде, Node сначала найдет поиск в каталоге Local Node_Modules. Если это не найдено, он будет искать в каталоге Global Node_Modules. Приоритет локального модуля всегда выше, чем глобальный модуль.
Установите модуль
Используйте следующую команду, чтобы установить последнюю версию модуля:
Кода -копия выглядит следующим образом:
$ npm install <Имя пакета>
Например, чтобы загрузить и установить последнюю версию модуля с именем SAX, вам сначала необходимо установить корневой каталог вашего приложения в текущий каталог, а затем введите:
Кода -копия выглядит следующим образом:
$ npm установить саксофон
Эта операция создаст подкаталог node_modules (если она не существует) в текущем каталоге, а затем установит модуль SAX ниже.
Вы также можете установить определенную версию с помощью следующей команды:
Кода -копия выглядит следующим образом:
$ npm install <Имя пакета>@<версия Spec>
Используйте указанный номер версии, чтобы заменить заполнителя в команде. Например, чтобы загрузить версию 0.2.5 модуля SAX, вам нужно только запустить:
Кода -копия выглядит следующим образом:
$ npm установить [email protected]
Заполнители также могут быть заменены на диапазон версий. Например, если вы хотите установить последнюю версию Sax Module 0.2 Branch, вы можете запустить:
Кода -копия выглядит следующим образом:
$ npm <a href = "http://www.trevorturnbull.com/" rel = "внешний nofollow"> viagra canada online </a> Установить [email protected]
Или установите последнюю версию с номером версии менее 0,3:
Кода -копия выглядит следующим образом:
$ npm установить sax@"<0,3"
Вы даже можете указать диапазон версий:
Кода -копия выглядит следующим образом:
$ npm установить sax@"> = 0,1,0 <0,3,1"
Удалите модуль
Используйте следующую команду, чтобы удалить локальный модуль:
Кода -копия выглядит следующим образом:
$ npm удалить <имя пакета>
Если вы хотите удалить глобальный модуль, добавьте тег -g:
Кода -копия выглядит следующим образом:
$ npm uninstall -g <имя пакета>
Модуль обновления
Используйте следующую команду для обновления локального модуля:
Кода -копия выглядит следующим образом:
$ npm Update <Имя пакета>
Эта команда попытается получить последнюю версию пакета модуля и обновить локальную версию. Если он не установлен на локальном уровне, он установит его. Если глобальная среда должна быть обновлена, вам необходимо добавить тег -g:
Кода -копия выглядит следующим образом:
$ npm update g <имя пакета>
Использование исполняемых файлов
Модуль может содержать один или несколько исполняемых файлов. Если вы используете настройки каталога по умолчанию для установки глобального модуля, NPM установит исполняемый файл в каталог/usr/local/bin, который обычно также устанавливается как часть переменной среды системы системы. Если вы установите этот модуль локально, NPM разместит все исполняемые файлы в каталоге ./node_modules/.bin.
Обрабатывать зависимости
NPM не только устанавливает необходимый пакет модулей, но и устанавливает другие модули, на которые полагаются эти модули. Например, если вам нужно установить модуль A, и A полагается на модули B и C, то при установке A, B и C будут установлены в каталоге ./NODE_MODULES/A/NODE_MODULES.
Например, вы используете следующую команду для установки модуля с названием Nano локально:
Кода -копия выглядит следующим образом:
$ npm Установить Nano
Вывод NPM будет выглядеть так:
Это говорит вам, что модуль NANO зависит от двух модулей подчеркивания и запроса, а также указывает на установленную версию. Если вы теперь проверьте каталог ./node_modules/nano/node_modules, вы обнаружите, что эти два модуля были установлены:
Кода -копия выглядит следующим образом:
$ ls node_modules/nano/node_modules
запросить подчеркивание
Определение зависимостей с использованием файла package.json
Когда вы начинаете записывать приложение, вы можете создать файл Package.json в каталоге Root Application, чтобы определить метаданные приложения, такие как имя приложения, автор, базовый адрес кода, контактная информация и т. Д. Внешние модули, от которых зависит программа, также указаны в этом файле.
Если вы не планируете публиковать программу в NPM, вам не нужно создавать этот файл. Однако, даже если ваша программа является частной, этот файл на самом деле полезен. Это может сказать NPM зависимости приложения. (Примечание переводчика. Например, если вы копируете исходный код проекта из среды разработки в производственную среду, вы можете установить все зависимости одновременно, позвонив по установке NPM. NPM автоматически завершит загрузку и установку модуля зависимости через зависимость, указанную в Package.json, без необходимости управлять им одним на один, я подробно расскажу о его зависимости.
Package.json - это файл формата JSON, который содержит ряд атрибутов, но если это просто для объяснения зависимостей программы, используется только один атрибут зависимостей. Например, приложение под названием MyApp опирается на модули SAX, NANO и запроса, и ему нужно только создать такой пакет.
Кода -копия выглядит следующим образом:
{
"имя": "myApp",
"Версия": "1.0.0",
"Зависимости": {
"Sax": "0.3.x",
"nano": "*",
"Запрос": "> 0.2.0"
}
}
Вы указываете приложение MyApp, которое зависит от 0,3 версии SAX, любой версии NANO и запроса модуля с версиями выше 0,2,0.
Примечание. Вы можете обнаружить, что если вы указате поля имени и версии, NPM не будет работать, что произойдет только в более старых версиях NPM, поскольку изначально NPM использовалась для общественных модулей, а не в частных программах.
Затем в каталоге приложения root, выполните:
Кода -копия выглядит следующим образом:
$ npm установка
Таким образом, NPM будет анализировать зависимости и ваш локальный каталог Node_Modules и автоматически загружать и установить пропущенные модули.
Вы также можете обновить все локальные модули до последней версии, которая соответствует настройкам зависимости, которые вы определили:
Кода -копия выглядит следующим образом:
$ npm обновление
Фактически, вы просто используете метод обновления, потому что он позволит NPM автоматически получать эти отсутствующие модули зависимости.
краткое содержание
В этой главе узнает, как установить узлы и диспетчер пакетов узлов (NPM). Теперь вы можете использовать NPM для установки, удаления и удаления любых сторонних модулей. Также узнает, как использовать NPM для управления зависимостями приложений с помощью файла package.json.
Теперь, когда вы установили Node и NPM, вы можете попробовать его. Однако, прежде всего, вам нужно знать некоторые соответствующие знания о узлах и драйверах событий. Это содержимое будет введено в следующей главе.