Node.js и Windows Azure

Время чтения
1 минут
Прочитано

Node.js и Windows Azure

ноября 21, 2012 - 22:41
0 комментариев

В предыдущей статье мы рассмотрели теоретические основы Node.js и практические примеры создания сетевых веб-приложений. Сегодня мы научимся размещать сайт на Node.js в облачной платформе Windows Azure.

В предыдущей статье мы рассмотрели теоретические основы 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”).

Создание веб-сайта в Windows Azure Web Site

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

Настройка Git в Windows Azure Web Site

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

Логин и пароль Git в Windows Azure Web Site

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

Клонирование проекта Git из Windows Azure Web Site на локальный компьютер

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

Откройте программу GitHub для Windows и перетащите клонированную папку с локального диска в окно local repositories. Введите логин и пароль для подтверждения соединения с Git в Windows Azure.

Создание репозитория в GitHub для Windows

Так как 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.

Автоматические изменения проекта в GitHub

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

Публикация проекта GitHub в Windows Azure Web Site

Теперь возвращаемся в портал 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 для последующей синхронизации с удаленным хранилищем.

Создание commit в GitHub

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

История изменения проекта в Windows Azure Web Site

Если обновите страницу нашего веб-сайта, вы можете увидеть новое описание: «Hello Node.js, Express and Windows Azure Web Site».

Как вы заметили, работа над проектом Node.js с Windows Azure Web Site проходит очень легко, существенная экономия времени на первоначальную настройку веб-сервера дает возможность полностью сосредоточиться на написании кода веб-сайта.

В следующей статье мы рассмотрим, как использовать SQL Server в Node.js, а также как настроить готовый веб-проект для работы с Windows Azure Database SQL.