Поиск на сайте: Расширенный поиск


Новые программы oszone.net Читать ленту новостей RSS
CheckBootSpeed - это диагностический пакет на основе скриптов PowerShell, создающий отчет о скорости загрузки Windows 7 ...
Вы когда-нибудь хотели создать установочный диск Windows, который бы автоматически установил систему, не задавая вопросо...
Если после установки Windows XP у вас перестала загружаться Windows Vista или Windows 7, вам необходимо восстановить заг...
Программа подготовки документов и ведения учетных и отчетных данных по командировкам. Используются формы, утвержденные п...
Red Button – это мощная утилита для оптимизации и очистки всех актуальных клиентских версий операционной системы Windows...
OSzone.net Microsoft Разработка приложений Облако/Azure Azure Web Sites Создание веб-сервиса на основе Node.js для доступа к базе данных MongoDB RSS

Создание веб-сервиса на основе Node.js для доступа к базе данных MongoDB

Текущий рейтинг: 5 (проголосовало 1)
 Посетителей: 5331 | Просмотров: 6774 (сегодня 0)  Шрифт: - +

Облако нейтрально ко всем языкам. В облаке не должно иметь никакого значения, построены ли выполняемые вами приложения на основе Node.js, ASP.NET, Java или PHP, потому что облако предоставляет готовую инфраструктуру для их работы. Религия облака — гибкость (agility), а она позволяет вам быстро реализовать новые идеи и отказываться от тех, которые не работают в мире коммерции. За последние годы Node.js завоевала популярность среди нового класса разработчиков, которые отдают предпочтение парадигме асинхронного программирования. Node.js — это исполняющая среда JavaScript, поддерживающая создание клиентских и серверных приложений. Она включает инфраструктуру асинхронного ввода-вывода, которая помогает обрабатывать тысячи одновременных соединений в одном потоке с минимальной нагрузкой на процессор или память. Популярный миф заключается в том, будто бы Node.js — это инфраструктура веб-разработки; на самом деле это однопоточный механизм выполнения JavaScript-кода. У нее модульная архитектура, которая позволяет любому разработчику создать и опубликовать какой-либо модуль для обработки конкретных задач, таких как веб-разработка или доступ к базе данных MongoDB. Например, механизм шаблонов Express — это инфраструктура веб-приложений, которую можно загрузить как модуль в Node.js. Базовое ядро Node.js написано на C++ поверх ядра Google V8 JavaScript, рассчитанного на браузер Chrome. Node.js поддерживается в Microsoft Azure Web Sites, и Microsoft также предоставляет средства разработки и SDK для программирования с использованием Azure API. На портале Azure Portal (bit.ly/1iupElQ) имеется центр разработки для Node.js.

В этой статье я покажу, как разработать веб-сервис RESTful на Node.js, который обращается к базе данных MongoDB в облаке, и как развернуть его в Azure Web Sites.

Node.js основана на модели асинхронного программирования, а значит, каждый вызываемый вами метод требует обратного вызова для получения ответа. Хотя .NET-разработчики традиционно предпочитают синхронные методы (запрос-ответ), асинхронные возможности всегда были в Microsoft .NET Framework. С включением новой модели программирования на основе ключевых слов async и await в .NET Framework, асинхронные приложения стали нормой среди веб- и мобильных приложений. В асинхронном программировании вызывающая функция подписывается на событие обратного вызова (callback event) и предоставляет делегат для обработки ответа. Функция обратного вызова запускается по завершени обработки. Это подобно электронной почте в сравнении с телефонным звонком.

Ниже показан простой веб-сервер на основе Node.js, который при вызове возвращает некую строку:

var http = require("http");
http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type":
  "text/plain"});
  response.write("Hello MSDN");
  response.end();
}).listen(8080);

Заметьте, что функция response вызывается, когда генерируется событие HTTP-запроса. Функция require используется для загрузки модулей аналогично загрузке пространств имен из сборок в .NET Framework.

Было много споров, в том числе едва ли не религиозных, по поводу ASP.NET в сравнении с Node.js, но я не намерен касаться этой темы в своей статье. Мой подход всегда состоял в том, что нужно использовать самый подходящий инструмент для конкретной работы, с помощью которого вы сможете сделать ее лучше всего.

Обработка запросов в Node.js

Как показано на рис. 1, ядро Node.js запускает единственный поток для обработки одновременных клиентских соединений. Этот поток уже инициализирован, и нет никаких издержек инициализации, необходимой для обработки любого увеличения в количестве запросов, так как он быстро делегирует запрос асинхронно рабочему потоку для обработки.

*
Увеличить

Рис. 1. Управление «запрос-ответ» в Node.js

Single-Thread Event LoopЦикл событий в одном потоке
AsyncАсинхронно
CallbackОбратный вызов
Non-Blocking Worker ThreadsНеблокирующие рабочие потоки
DatabasesБазы данных
Web ServicesВеб-сервисы
Node.js Web ServerВеб-сервер на основе Node.js
I/O-Intensive Tasks Run on Worker ThreadsЗадачи с интенсивным вводом-выводом выполняются в рабочих потоках
HTTP RequestsHTTP-запросы
HTTP ResponsesHTTP-ответы
Browser/ ClientБраузер/клиент

Если HTTP-запрос включает длительно выполняемую или требующую интенсивного ввода-вывода задачу, такую как обращение к базе данных или вызов веб-сервиса, то он асинхронно выполняется в неблокирующих рабочих потоках. По завершении длительно выполняемой задачи рабочие потоки возвращают результат основному потоку как обратный вызов. Затем основной поток передает результат клиенту. Здесь важно понимать, что единственный принимающий поток всегда доступен для приему запросов и не нагружается обработкой, так как обработка делегируется рабочим потокам.

Основные компоненты Node.js

Node.js состоит из двух основных компонентов.

Ядро Это ядро написано на C++ поверх ядра Google V8 JavaScript. Само ядро является однопоточным и способно балансировать нагрузку между процессорами. Node.js имеет открытый исходный код, и вы можете получить его с github.com/joyent/node.

Модули Это аналоги NuGet-пакетов в .NET Framework. Node.js Package Manager (NPM) является средством для управления пакетами Node.js в вашей среде разработки. Модули порождают новые процессы или потоки в зависимости от интенсивности ввода-вывода конкретной задачи. Среди популярных модулей — HTTP, MongoDB, Express (инфраструктура веб-шаблонов) и Socket.IO. Полный список популярных модулей см. на сайте nodejsmodules.org.

Установка и локальный запуск Node.js

Прежде чем запускать любой веб-сайт Node.js в облаке, рекомендую опробовать его локально, чтобы привыкнуть к платформе. Вы можете установить и запустить Node.js на платформе Windows всего в три этапа.

  1. Скачайте и установите Node.js Windows-установщик Node.js можно скачать и установить с nodejs.org/#download. Установщик устанавливает исполняющую среду Node.js и NPM.
  2. Создайте простой сервер Чтобы создать HTTP-сервер в Node.js, откройте свой любимый текстовый редактор, скопируйте ранее приведенный код и сохраните файл как webserver.js. Этот код создает минималистский веб-сервер, который прослушивает порт 8080 и отвечает одной и той же строкой на каждый запрос.
  3. Запустите HTTP-сервер Наконец, чтобы запустить сервер, откройте окно командной строки, перейдите в папку, где вы сохранили файл webserver.js, и введите следующее:
  4. >“C:\Program Files\nodejs\node.exe” webserver.js

  5. Эта команда запускает веб-сервер, и вы можете протестировать его, перейдя в своем браузере на http://localhost:8080. Этот простой сервер должен придать вам достаточно уверенности, чтобы использовать Node.js как один из вариантов для разработки веб-сайтов.

Выполнение Node.js в Azure Web Sites

Впервые используя Node.js, я решил по возможности избегать командной строки. Проведя свою жизнь в Visual Studio, я по-настоящему ценю производительности труда, достигаемую при использовании IDE. К счастью, Microsoft создала WebMatrix — мощный инструмент для разработки приложений под Node.js в Windows. Группа Visual Studio также выпустила средства Node.js для Visual Studio (nodejstools.codeplex.com). В остальной части этой статьи я буду использовать WebMatrix как основной инструмент разработки. Из WebMatrix можно устанавливать NPM-пакеты, публиковать веб-сайты в Azure, а также запускать их локально. Кроме того, WebMatrix устанавливает IISNode for IIS Express, что позволяет размещать приложения Node.js в IIS. Подробнее о IISNode см. на github.com/tjanczuk/iisnode.

Прежде чем создавать полноценный веб-сервис RESTful, я покажу, как опубликовать простой веб-сайт в Azure из WebMatrix.

Создайте новый веб-сайт в Azure Вы можете сделать это из портала Azure Portal (рис. 2).

*
Рис. 2. Создание нового веб-сайта в Azure Web Sites

Этот портал создаст новый сайт с уникальным именем в указанном вами регионе. Указание региона важно для совместного размещения с вашим веб-сайтом баз данных и других сервисов в одном информационном центре. Данные, передаваемые за пределы информационного центра, нужно оплачивать.

Создайте веб-сайт Express Express — это инфраструктура веб-приложений для Node.js. Она следует шаблону Model-View-Controller (MVC) и поэтому позволяет задавать маршруты для создаваемых в Node.js MVC веб-сайтов, а также веб-сервисов RESTful. Express можно скачать с expressjs.com.

Если вы предпочитаете вести .NET-разработку в Visual Studio, советую освоить WebMatrix для создания приложений Node.js. WebMatrix 3 включает полезный шаблон Express. Выберите New | Template Gallery и в категории Node.js укажите шаблон Express Site (рис. 3).

*
Рис. 3. Шаблон Express Site

Присвойте имя сайту и щелкните Next, чтобы установить IISNode и шаблон Express Site.

Созданный мной ранее сервер Node.js в таком виде не запустится в Azure Web Sites, так как эта инфраструктура полагается на IIS при выполнении веб-сайтов. Следовательно, чтобы запустить веб-сайт Node.js, мне нужна интеграция между IIS и Node.js, которую обеспечивает IISNode.

На рис. 4 представлена структура файлов, созданная шаблоном Express и исходный код для server.js.

*
Рис. 4. Структура файлов в Express

Заметьте, что модули express и routes импортируются автоматически. Я задействую эти модули при создании REST-сервисов.

Локальное выполнение веб-сайта Следуя моим предыдущим рекомендациям, щелкните кнопку Run в WebMatrix, чтобы протестировать веб-сайт на своей локальной машине. Если установка прошла успешно, вы должны увидеть основную страницу Express.

Шаблон Express также устанавливает ядро шаблонов Jade. Jade — это механизм шаблонов HTML и используется для создания представлений, генерируемых инфраструктурой Express. Jade для Express то же, что Razor для ASP.NET MVC. Поэтому рендеринг контента index.html осуществляется из /views/index.jade и /routes/index.js. Эти маршруты настраиваются в строках 16, 17 и 30 файла server.js, как показано на рис. 4. Подробнее о Jade см. jade-lang.com.

Публикация веб-сайта в Azure Теперь, когда вы создали веб-сайт Node.js локально в Express, давайте опубликуем его в Azure. Щелкните кнопку Publish в WebMatrix, чтобы запустить этот процесс. Импортируйте профиль публикации для своего веб-сайта и следуйте указаниям мастера публикации (рис. 5).

*
Рис. 5. Публикация в Microsoft Azure

Если все прошло успешно, WebMatrix загрузит ваш веб-сайт в Internet Explorer.

URL в браузере должен быть Azure Web Site, в котором вы опубликовали свой веб-сайт. Это хорошая демонстрация того, насколько легко разрабатывать и развертывать веб-сайты и веб-сервисы Node.js в Azure. Теперь уделим немного внимания MongoDB. К Node.js я вернусь позже, когда мы займемся созданием веб-сервисов.

Обзор MongoDB

MongoDB — масштабируемая, высокопроизводительная база данных, ориентированная на документы, с открытым исходным кодом, которая включает большую часть инфраструктурных возможностей реляционных баз данных, таких как репликация, сегментирование баз данных (sharding), индексация и преодоление сбоев. MongoDB также предлагает автоматическое сегментирование баз данных (auto-sharding) и имеет встроенные средства обработки Map Reduce, которых сегодня нет в большинстве реляционных баз данных. Реляционные базы данных проектировались в эпоху, когда системы хранения были дорогими. Хранение данных в реляционном формате позволяло разработчикам оптимизировать пространство хранилища, не жертвуя быстрой выборкой данных. В современном мире хранилища весьма дешевы в сравнении со стоимостью вычислений. В облаке цены на хранилища продолжают снижаться. В итоге сохранение и получение данных в реляционном формате становится дорогостоящим в сравнении с хранением данных в облаке. Растет спрос на непрерывную доставку данных, и все большее количество приложений ожидают получения данных из хранилища в реальном времени. MongoDB позволяет сохранять объекты и документы без разбиения их на реляционные компоненты. Это уменьшает нагрузку по обработке на приложение, а также на базу данных.

MongoDB не рекомендуется для приложений, требующих глубоких связей между объектами, так как она не предназначена для поддержания и получения таких связей в отличие от реляционных баз данных. Если ваше приложение требует глубокий связей и SQL для получения данных, используйте реляционную базу данных. А если вашему приложению нужно быстрое сохранение и выборка объектов из хранилища, применяйте MongoDB. Как я и предлагал ранее, всегда используйте лучший инструмент для конкретной работы.

Подготовка MongoDB в Azure

MongoDB доступна как надстройка в Azure Store, и вы можете установить изолированную версию (sandbox version) бесплатно. Войдите на портал Azure Portal и установите MongoDB (MongoLab) из меню New | Store | Add-on (рис. 6).

*
Рис. 6. Надстройка MongoDB из MongoLab

На странице Personalize Add-on выберите версию Sandbox и установите экземпляр MongoDB в том же регионе, в котором находится ваш веб-сайт (рис. 7).

*
Рис. 7. Настройка MongoDB

По окончании установки перейдите на страницу надстройки и сохраните строку подключения для установленной базы данных, как показано на рис. 8. Строку подключения вы будете использовать для соединения со своим веб-сервисом на основе Node.js.

*
Рис. 8. Строка подключения для установленной базы данных

MongoDB теперь выполняется в Azure. MongoLab (принадлежит ObjectLabs Corp.) имеет свой выделенный портал управления, который вы можете увидеть, щелкнув ссылку Manage Your Add-on.

Теперь база данных MongoDB выполняется в облаке, и вы создали пустой шаблон Node.js. Чтобы закончить приложение, нужно заполнить базу данных MongoDB и создать веб-сервисы, которые извлекают данные из этой базы данных. Это стандартный стиль разработки ПО в облаке.

Установка обязательных компонентов Node.js для поддержки соединений MongoDB

JSON — полноправный компонент в MongoDB, и поэтому он дополняет Node.js. Поскольку веб-сервис будет подключаться к MongoDB, мне нужно установить новейший драйвер Node.js для MongoDB из NPM Gallery (рис. 9).

*
Рис. 9. Драйвер Node.js для MongoDB

Информация соединения с MongoDB помещается в конфигурационный файл. Модуль nconf позволяет считывать конфигурационную информацию из файлов (рис. 10).

*
Рис. 10. Модуль nconf

После установки модулей mongodb и nconf вы располагаете всем, что нужно для настройки Node.js и MongoDB в среде разработки.

Создание сигнатур веб-сервисов REST

Чтобы создать веб-сервис REST, вы сначала определяете зависимости и маршруты в server.js:

var express = require('express')
  , routes = require('./routes')
  , user = require('./routes/user')
  , http = require('http')
  , path = require('path'),
  pkgs=require('./routes/pkgs');

Затем вы определяете REST-функции в файле /routes/pkgs.js, так как в предыдущем коде вы делегируете обработку функций модулю pkgs. В папке routes создайте файл с именем pkgs.js, в котором определяются операции веб-сервиса, как показано на рис. 11.

Рис. 11. Сигнатуры REST-операций

exports.findAll = function(req, res) {
  res.send([{name:'app1'}, {name:'app2'}, {name:'app3'}]);
};
exports.findById = function(req, res) {
  res.send({id:req.params.id,
  name: "DisplayName", description: "description"});
};
exports.addPkg = function (req, res) {
  res.send("Success");
};
exports.updatePkg = function (req, res) {
  res.send("Success");
};

Чтобы протестировать базовое функционирование операций, просто создайте скелеты функций, возвращающих статические данные. Код для доступа к базе данных вы добавите потом. В server.js определите методы route, которые соответствуют только что созданным вами методам модуля:

app.get('/pkgs', pkgs.findAll);
app.get('/pkgs/:id', pkgs.findById);
app.post('/pkgs', pkgs.addPkg);
app.put('/pkgs/:id', pkgs.updatePkg);

Если вы знакомы с ASP.NET Web API, то быстро поймете эти маршруты и их сопоставление с соответствующим классом реализации. При наличии объявления маршрутов и сопоставлений любой запрос к /pkgs будет направляться одной из функций в pkgs.js. Теперь, когда у вас есть сигнатуры и определения операций веб-сервиса, вы можете проверить, корректно ли работают маршруты, запустив веб-сайт локально, а также в Azure. Проверяемые URL следующие: http://[URL веб-сайта]/pkgs, http://[URL веб-сайта]/pkgs/remote и http://[URL веб-сайта]/pkgs/1. Если эти URL возвращают ожидаемые значения, маршруты работают нормально и вы можете продолжить интеграцию MongoDB.

Реализация операций веб-сервиса REST

Теперь вам нужно реализовать операции веб-сервиса для подключения к MongoDB и получения данных. Это делается в четыре этапа.

  1. Создайте файл config.json и сохраните в нем строку подключения к MongoDB.
  2. Инициализируйте клиент MongoDB.
  3. Заполните MongoDB образцами данных. На этом этапе функция выдает вызов HTTP GET по http://storage.appsforazure.com/appsforazureobjectstest/servicepackages.json и сохраняет полученные данные в экземпляре MongoDB.
  4. Реализуйте функции доступа к данным для получения и сохранения данных в MongoDB.

Создание файла config.json Этот файл, похожий на app.config в .NET, но имеющий формат JSON, хранит вашу конфигурационную информацию. Добавьте в новый файл такую пару «имя-значение»:

{
  "MONGOLAB_URI" :
    "mongodb://nodeapps:xxxxxxxx.f.migd9GGB9Ck3M17jlkVCUVI-@ds027758.
    mongolab.com:27758/nodeapps"
}

Значением является строка подключения к MongoDB, которую вы ранее сохранили на Azure Portal.

В pkgs.js вы должны импортировать модуль nconf, чтобы считывать конфигурационные значения:

var nconf = require('nconf');
nconf.env().file({ file: 'config.json' });
var connectionString = nconf.get("MONGOLAB_URI");

Переменную connectionString можно потом использовать в функциях для подключения к базе данных MongoDB. Заметьте, что connectionString объявлена как глобальная переменная в pkgs.js, чтобы к ней могли обращаться все функции.

Инициализация клиента MongoDB Чтобы инициализировать соединение с базой данных MongoDB, нужно импортировать модуль mongodb и вызвать метод connect, как показано на рис. 12.

Рис. 12. Подключение к базе данных MongoDB

var mongo = require('mongodb');
var MongoClient = mongo.MongoClient
MongoClient.connect(connectionString, function (err, db) {
  if (err) throw err;
  if (!err) {
    console.log("Connected to 'pkgsdb' database");
    db.collection('pkgs', { strict: true },
      function (err, collection) {
      if (err) {
        console.log(
          "The 'pkgsdb' collection doesn't exist.
          Creating it with sample data...");
        populateDB(db);
      }
    });
  }
})

При успешном соединении переменная db на рис. 12 содержит объект соединения с базой данных. Функция db.collection пытается подключиться к набору pkgs. Если pkgs не существует, создается новый вызовом функции populateDB. В реальном приложении делать этого не понадобится, потому что набор на самом деле будет создан до запуска приложения. (Набор в MongoDB — это группа связанных документов по аналогии с таблицей в реляционной базе данных.)

Заполнение MongoDB образцами данных Для этой статьи я использовал образцы данных, доступные в виде набора программных пакетов от dynamicdeploy.com. В функции populateDB я загружаю этот набор в формате JSON из http://storage.appsforazure.com/appsforazureobjectstest/servicepackages.json (рис. 13).

Рис. 13. Заполнение базы данных

var populateDB = function (db) {
  var body = "";
  var url =
    "http://storage.appsforazure.com/appsforazureobjectstest/servicepackages.json";
  http.get(url, function (res2) {
    res2.on('data', function (chunk) {
      body += chunk;
    });
    res2.on("end", function () {
    var pkgs = JSON.parse(body)
    db.collection('pkgs', function (err, collection) {
      collection.insert(pkgs, { safe: true },
      function (err, result) { });
    });
    });
      res2.on("error", function (error) {
        // Здесь можно вести дальнейшее протоколирование
    })
  });

Заметьте, что JSON играет в Node.js полноправную роль, поэтому вам не придется импортировать никого модуля для разбора JSON-объектов. Функция collection.insert вставляет весь JSON-документ (var pkgs) в набор MongoDB. MongoDB определяет схему объектов в период выполнения и принимает интеллектуальные решения об их сохранении. В реляционной базе данных вы должны были бы определить схему таблицы до сохранения в ней каких-либо данных. Набор обеспечивает гибкость в модификации схемы в период выполнения, просто изменяя свойства JSON-объектов. Если свойства объекта изменяются, MongoDB автоматически применяет эти изменения к схеме перед сохранением объекта. Это полезно для создания приложений, таких как каналы социальных сетей и Интернета вещей, которые динамически изменяются при модификации типов данных.

Реализация функций доступа к данным Наконец, вы должны реализовать функции доступа к данным для HTTP-функций GET, POST и PUT, объявленных ранее. HTTP-функция GET сопоставляется с функциями findById и findAll в веб-сервисе, как показано на рис. 14.

Рис. 14. Find-функции

exports.findById = function (req, res) {
  var id = req.params.id;
  console.log('Retrieving pkg: ' + id);
  MongoClient.connect(connectionString, function (err, db) {
    if (err) throw err;
    if (!err) {
        db.collection('pkgs', function (err, collection) {
          collection.findOne({ '_id': new BSON.ObjectID(id) },
            function (err, item) {
            res.send(item);
            });
        });
      }
    })
  };
exports.findAll = function(req, res) {
  MongoClient.connect(connectionString, function(err, db) {
  if(err) throw err;
  if(!err) {
    db.collection('pkgs', function(err, collection) {
      collection.find().toArray(function(err, items) {
        res.send(items);
      });
    });
    }
  })
};

Функция findById получает объект по его Id, тогда как функция findAll получает все объекты. Функции collection.findOne и collection.find соответственно получают результаты этих операций от MongoDB. Аналогично на рис. 15 приведен метод addPkg, сопоставленный с HTTP POST, и метод updatePkg, сопоставленный с HTTP PUT.

Рис. 15. Функции добавления и обновления

exports.addPkg = function (req, res) {
  var pkg = req.body;
  console.log('Adding pkgs: ' + JSON.stringify(pkg));
  MongoClient.connect(connectionString, function (err, db) {
    if (err) throw err;
    if (!err) {
      db.collection('pkgs', function (err, collection) {
        collection.insert(pkg, { safe: true }, function (err, result) {
          if (err) {
            res.send({ 'error': 'An error has occurred' });
          } else {
            console.log('Success: ' + JSON.stringify(result[0]));
            res.send(result[0]);
          }
        });
      });
    }
  })
};
exports.updatePkg = function (req, res) {
  var id = req.params.id;
  var pkg = req.body;
  console.log('Updating pkgs: ' + id);
  console.log(JSON.stringify(pkg));
  MongoClient.connect(connectionString, function (err, db) {
    if (err) throw err;
    if (!err) {
      db.collection('pkgs', function (err, collection) {
        collection.update({ '_id': new BSON.ObjectID(id) },
          pkg, { safe: true }, function (err, result) {
          if (err) {
            console.log('Error updating pkg: ' + err);
            res.send({ 'error': 'An error has occurred' });
          } else {
            console.log('' + result + ' document(s) updated');
            res.send(pkg);
          }
        });
      });
    }
  })
};

Если вы до сих пор не бросили читать эту статью, то должны суметь реализовать функцию удаления самостоятельно. Я оставлю вам ее в качестве упражнения. Сначала сохраните и запустите веб-сайт локально, а затем опубликуйте его в Azure Web Sites для проверки каждой REST-функции. Полный исходный код для веб-сервиса REST и веб-сайта доступен по ссылке github.com/dynamicdeploy/appsforazure.

Выполнив полную проверку приложения, можно горизонтально масштабировать свою инфраструктуру MongoDB (или сервис) в зависимости от нагрузки. Как демонстрирует эта статья, никакой инфраструктуры для развертывания крупномасштабных веб-сайтов Node.js и MongoDB Web в Azure не требуется. Скелетный код в сопутствующем этой статье исходном коде поможет вам приступить к созданию веб-сервисов и веб-сайтов Node.js в Azure Web Sites.

Заключение

Цель этой статьи — ознакомить вас с созданием веб-сервисов на основе Node.js в Azure Web Sites. Node.js и MongoDB дополняют друг друга, и, поскольку они доступны в виде Platform as a Service (PaaS), вам не придется заранее вкладывать деньги в инфраструктуру для создания полноценного веб-сайта и его динамического горизонтального масштабирования. Как разработчик вы можете сосредоточиться на создании и использовании веб-сервисов в своих мобильных приложениях прямо из облака.

Автор: Тежасви Редкар  •  Иcточник: msdn.microsoft.com  •  Опубликована: 13.11.2014
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER
Теги:   Node.js.


Оценить статью:
Вверх
Комментарии посетителей
Комментарии отключены. С вопросами по статьям обращайтесь в форум.