Node.js и Windows Azure
В предыдущей статье мы рассмотрели теоретические основы 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”).
Как только сайт будет создан, в панели управления нажмите на пункт «Установка публикации 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.