{{ !articles[0].partner.isSponsoringArticle ? "Platinum" : "Portal" }} Partner
architects,cloud,javascript,tips and tricks,azure,node.js,nodejs,fogjs

Announcing FogJS for Windows Azure with Node.js

About a year and a half ago I announced a library named Fog (for F#) that had the goal of making it very easy to use F# to work with the Windows Azure API for .NET. Today, I'm proud to announce the release of FogJS, which has a similar goal for JavaScript/Node.js development.

FogJS currently supports 3 of the more popular Azure services: Blob Storage, Table Storage, and Service Bus. One of the most broad features in FogJS is that of support for promises. In fact, almost every function provided by the Azure SDK for Node.js has been replicated in Fog with the results returned as a promise (with the help of Q.js).

The second big feature is related to making it as easy as possible to interact with Azure. This is primarily accomplished with "simplified functions" that follow a convention over configuration approach.


Here's a quick example of one option for how to use Blob Storage with FogJS:
var fog = require("fogjs"); 
var fogBlob = fog.blobStorage;

var containerName = "testcontainer";
var blobName = "testblob";

    "containerName": containerName, 
    "blobName" : blobName, 
    "blobText": "My super awesome text to upload"
}).then(function() {
    return fogBlob.getBlobToText({
        "containerName": containerName, 
        "blobName" : blobName
}).then(function(response) {
    console.log("The blob contains the text: " + response.text);
    return fogBlob.deleteBlob({
        "containerName": containerName, 
        "blobName" : blobName
}).then(function(response) {
You can find examples for Table Storage and Service Bus interaction on the main FogJS site: http://fogjs.azurewebsites.net/.

As usual, the code and tests can be found on my GitHub.

Published at DZone with permission of {{ articles[0].authors[0].realName }}, DZone MVB. (source)

Opinions expressed by DZone contributors are their own.

{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks