Статьи

Начало работы с Azure, Node.js и FogJS в Windows

Около месяца назад я представил FogJS . На главном сайте FogJS есть несколько примеров кода, которые можно использовать для быстрого начала взаимодействия с хранилищем BLOB-объектов , хранилищем таблиц или служебной шиной Azure. Однако, если вы новичок в использовании Azure из Node.js, вам может быть интересно, какие еще шаги нужно предпринять, чтобы настроить и запустить среду разработки. Несмотря на то, что вы можете почерпнуть пошаговые инструкции, прочитав различные практические руководства,  представленные на сайте Azure, иногда бывает полезно описать процесс немного иначе. В этой статье я покажу вам, как быстро настроить Windows-машину для взаимодействия с эмулятором Table Storage с помощью  FogJS . Я буду следовать той же структуре, что и руководство по началу работы с Node.js.и несколько шагов между этим постом и этим руководством совпадают. Некоторые из ключевых отличий включают использование WorkerRole, а не WebRole, использование эмулятора и, конечно, использование FogJS.

Настройка вашего Windows-компьютера:

1. Установите Node.js с  http://nodejs.org/ .
2. Установите Windows Azure SDK для Node.js  (для этого может потребоваться перезагрузка).
3. Откройте командную строку PowerShell и перейдите к родительскому местоположению, в котором вы хотите создать проект. Я буду использовать c: \ Temp для этого примера.

4. Запустите следующую команду, чтобы создать пару начальных файлов для вашего проекта (примечание:
FogJSExample следует заменить на имя проекта, который вы хотите создать).

New-AzureServiceProject FogJSExample

6. Перейдите в каталог FogJSExample и установите FogJS с помощью команды:

npm install fogjs

5. Создайте рабочую роль с помощью следующей команды (примечание:
TableStorageWorker должен быть заменен именем работника, которого вы хотите создать).

Add-AzureNodeWorkerRole TableStorageWorker

7. Перейдите в каталог TableStorageWorker, отредактируйте файл server.js и замените текст в нем следующим текстом:

var http = require('http');
var fogjs = require("fogjs");
 
var fog = fogjs.tableStorage;
var port = process.env.port || 1337;

http.createServer(function (req, res) {
    var testTableName = "testTableName";
    var key = "myRowKey";
    var partitionKey = "testPartition";

    fog.insertEntity({
        "tableName" : testTableName,
        "entity": {
            "PartitionKey" : partitionKey,
            "RowKey" : key,
            "MyCustomField" : "Legends of Awesomeness!"
        }
    }).then(function(response){
        return fog.queryEntity({
            "tableName" : testTableName, 
	    "entityDescriptor": {  
	        "PartitionKey" : partitionKey,
	        "RowKey" : key,
            }
	});
    }).then(function(response) {
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.end('MyCustomField from the created entity contains the text "' + 
            response.entity.MyCustomField + '"');
    }).fail(function(errorMessage) {
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.end('There was an error with message: ' + errorMessage);
    }).then(function() {
        // For this example, we'll delete the entity. 
        fog.deleteEntity({
            "tableName" : testTableName, 
            "entityDescriptor": {  
                "PartitionKey" : partitionKey,
                "RowKey" : key
            }
        });	
    });
}).listen(port);