Git Product home page Git Product logo

azure-sdk-for-node's Introduction

Windows Azure SDK for Node.js

This project provides a set of Node.js packages that make it easy to access the Windows Azure storage and queue services. For documentation on how to host Node.js applications on Windows Azure, please see the Windows Azure Node.js Developer Center.

Features

  • Tables
    • create and delete tables
    • create, query, insert, update, merge, and delete entities
    • Blobs
      • create, list, and delete containers, work with container metadata and permissions, list blobs in container
      • create block and page blobs (from a stream, a file, or a string), work with blob blocks and pages, delete blobs
      • work with blob properties, metadata, leases, snapshot a blob
      • Queues
        • create, list, and delete queues, and work with queue metadata
        • create, get, peek, update, delete messages

        Getting Started

        Download Source Code

        To get the source code of the SDK via git just type:

        git clone https://github.com/WindowsAzure/azure-sdk-for-node.git
        cd ./azure-sdk-for-node

        Download Package

        Alternatively, to get the source code via the Node Package Manager (npm), type

        npm install azure

        You can use these packages against the cloud Windows Azure Services, or against the local Storage Emulator.

        1. To use the cloud services, you need to first create an account with Windows Azure. You need to set the AZURE_STORAGE_ACCOUNT and the AZURE_STORAGE_ACCESS_KEY environment variables to the storage account name and primary access key you obtain from the Azure Portal.
        2. To use the Storage Emulator, make sure the latest version of the Windows Azure SDK is installed on the machine, and set the EMULATED environment variable to any value ("true", "1", etc.)

        Usage

        Table Storage

        To ensure a table exists, call createTableIfNotExists:

        var tableService = azure.createTableService();
        tableService.createTableIfNotExists('tasktable', function(error){
            if(!error){
                // Table exists
            }
        });
        

        A new entity can be added by calling insertEntity:

        var tableService = azure.createTableService(),
            task1 = {
                PartitionKey : 'tasksSeattle',
                RowKey: '1',
                Description: 'Take out the trash',
                DueDate: new Date(2011, 12, 14, 12) 
            };
        tableService.insertEntity('tasktable', task1, function(error){ 
            if(!error){
                // Entity inserted
            }
        });
        

        The method queryEntity can then be used to fetch the entity that was just inserted:

        var tableService = azure.createTableService();
        tableService.queryEntity('tasktable', 'tasksSeattle', '1', function(error, serverEntity){
            if(!error){
                // Entity available in serverEntity variable
            }
        });
        

        Blob Storage

        The createContainerIfNotExists method can be used to create a container in which to store a blob:

        var blobService = azure.createBlobService();
        blobService.createContainerIfNotExists('taskcontainer', {publicAccessLevel : 'blob'}, function(error){
            if(!error){
                // Container exists and is public
            }
        });
        

        To upload a file (assuming it is called task1-upload.txt, it contains the exact text "hello world" (no quotation marks), and it is placed in the same folder as the script below), the method createBlockBlobFromStream can be used:

        var blobService = azure.createBlobService();
        blobService.createBlockBlobFromStream('taskcontainer', 'task1', fs.createReadStream('task1-upload.txt'), 11, function(error){
            if(!error){
                // Blob uploaded
            }
        });
        

        To download the blob and write it to the file system, the getBlobToStream method can be used:

        var blobService = azure.createBlobService();
        blobService.getBlobToStream('taskcontainer', 'task1', fs.createWriteStream('task1-download.txt'), function(error, serverBlob){
            if(!error){
                // Blob available in serverBlob.blob variable
            }
        });
        

        Queues

        The createQueueIfNotExists method can be used to ensure a queue exists:

        var queueService = azure.createQueueService();
        queueService.createQueueIfNotExists('taskqueue', function(error){
            if(!error){
                // Queue exists
            }
        });
        

        The createMessage method can then be called to insert the message into the queue:

        var queueService = azure.createQueueService();
        queueService.createMessage('taskqueue', "Hello world!", function(error){
            if(!error){
                // Message inserted
            }
        });
        

        It is then possible to call the getMessage method, process the message and then call deleteMessage inside the callback. This two-step process ensures messages don't get lost when they are removed from the queue.

        var queueService = azure.createQueueService(),
            queueName = 'taskqueue';
        queueService.getMessages(queueName, function(error, serverMessages){
            if(!error){
                // Process the message in less than 30 seconds, the message
                // text is available in serverMessages[0].messagetext 
        
            queueService.deleteMessage(queueName, serverMessages[0].messageid, serverMessages[0].popreceipt, function(error){
                if(!error){
                    // Message deleted
                }
            });
        }
        

        });

        For more examples please see the Windows Azure Node.js Developer Center.

        Need Help?

        Be sure to check out the Windows Azure Developer Forums on Stack Overflow if you have trouble with the provided code.

        Feedback

        For feedback related specifically to this SDK, please use the Issues section of the repository.

        For general suggestions about Windows Azure please use our UserVoice forum.

        Learn More

        Windows Azure Node.js Developer Center

azure-sdk-for-node's People

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.