-
Добавлено пользователем arturbaranok - 21.11.2012 - 15:49
В предыдущей статье мы рассмотрели теоретические основы Node.js и практические примеры создания сетевых веб-приложений. Сегодня мы научимся размещать сайт на Node.js в облачной платформе Windows Azure.
Развертывание Node.js в Windows Azure Web Site с помощью Git
Windows Azure Web Site – новый облачный сервис, который был разработан компанией Microsoft в июне 2012 года. Он позволяет быстро создать и разместить готовый веб-сайт в облаке. Кроме сайтов, написанных на PHP и ASP.NET, появилась возможность размещать веб-приложения на Node.js.
Основные преимущества публикации веб-сайтов Node.js в облачном сервисе Windows Azure Web Site:
1. Веб-сервер IIS7 и модуль IISNode, отвечающий за работу Node.js в среде Windows Azure, установлен и полностью настроен в платформе «по умолчанию». Тем самым, упрощается начальная разработка и публикация тестового веб-сайта.
2. Windows Azure Web Site поддерживает несколько вариантов развертывания вашего веб-сайта. Можно использовать протоколы передачи TFS и FTP, а также использовать Git.
3. Windows Azure Web Site предусматривает три режима масштабирования будущего проекта, которые свободно настраиваются и хорошо защищены. Стоимость таких решений в несколько раз ниже, чем Windows Azure Cloud Service, при условии, если вам нужен только веб-сайт с базой данных.
4. Windows Azure Web Site поддерживает базы данных Windows Azure SQL Database и традиционные MySQL. Процесс запуска веб-сайта в Windows Azure довольно простой. Для начала вам необходимо выбрать пункт меню «Создание сайта с базой данных» (“New” - “Compute” – “Web Site”- “Create with Database”).

Как только сайт будет создан, в панели управления нажмите на пункт «Установка публикации Git» (Set up Git publishing). Введите уникальное имя пользователя и пароль. Процесс подготовки репозитория занимает небольшое количество времени. После этого нам необходимо настроить клонирование Git репозитория вашего локального диска с Windows Azure.

Если у вас еще не установлен Git, вы можете скачать его по этой ссылке http://git-scm.com/download. После установки программы запускаем Git и открываем командную строку Git Bash из меню Пуск. В командной строке перейдите в системную папку, которую необходимо клонировать. В моем случае я буду использовать папку «c:\Program Files\nodejs\apps\» (в командной строке введите команду: cd c:\Program\ Files\\nodejs\\apps).

Далее используйте адрес репозитория, указанный в Windows Azure https://laby_nodejs@nodejstest.scm.azurewebsites.net/nodejstest.git и клонируйте его командой git clone. Для подтверждения операции укажите пароль репозитория Git, который вы создали в Azure. Таким образом, на наш компьютер были клонированы данные из Windows Azure Web Site.

Для дальнейшей работы мы будем использовать программу GitHub:Windows - удобный инструмент с графическим интерфейсом для управления хранилищами GitHub.
Откройте программу GitHub для Windows и перетащите клонированную папку с локального диска в окно local repositories. Введите логин и пароль для подтверждения соединения с Git в Windows Azure.

Так как Windows Azure Web Site запускает приложения Node.js через IIS и IISNode, стартовый JavaScript файл должен быть с именем «server.js». Создадим веб-сервер с портом, который проходит через "process.env.PORT". Функция «process.env.PORT» означает, что извлечение наиболее подходящего номера порта происходит в самой среде Windows Azure Web Site.
var http = require("http"); http.createServer(function (req, res) { res.writeHead(200, {"Content-Type": "text/plain"}); res.end("Hello Node.js and Windows Azure Website!\n"); }).listen(process.env.port); console.log("Server started.");
После того, как мы сохранили файл в папке «nodejstest» на локальном компьютере, мы автоматически видим изменения в GitHub.

Добавляем первый коммит (commit) и нажимаем кнопку «Опубликовать» (publish). Если соединение настроено правильно, в меню GitHub вы увидите сообщение «in sync».

Теперь возвращаемся в портал Windows Azure Web Site и вводим адрес созданного веб-сайта http://nodejstest.azurewebsites.net/. Веб-сервер создан успешно и вы увидите сообщение “Hello Node.js and Windows Azure Website”.
NPM модули Node.js в Windows Azure Web Site
Для дальнейшей разработки нашего проекта нам понадобятся NPM модули. Все модули должны размещаться в папке "node_modules". Установим базовый пакет "express" (MVC Framework для Node.js."). Для правильной работы нашего веб-проекта с модулем "express" необходимо подправить код «server.js»:
var express = require("express"); var app = express(); app.get("/", function(req, res) { res.send("Hello Node.js, Express and Windows Azure Web Site."); }); app.get("/Echo/:value", function(req, res) { var value = req.params.value; res.json({ "Value" : value, "Time" : new Date() }); }); console.log("Web application opened."); app.listen(process.env.PORT);
Затем перейдите в GitHub для последующей синхронизации с удаленным хранилищем.

Кроме того, в панели управления Windows Azure Web Site во вкладке «DEPLOYMENTS» вы можете следить за историей всех коммитов с указанием даты создания, автора, уникального ID и подробных логов.

Если обновите страницу нашего веб-сайта, вы можете увидеть новое описание: «Hello Node.js, Express and Windows Azure Web Site».
Как вы заметили, работа над проектом Node.js с Windows Azure Web Site проходит очень легко, существенная экономия времени на первоначальную настройку веб-сервера дает возможность полностью сосредоточиться на написании кода веб-сайта.
В следующей статье мы рассмотрим, как использовать SQL Server в Node.js, а также как настроить готовый веб-проект для работы с Windows Azure Database SQL.