Windows Azure Web Sites mit Node.js und Express.js erstellen

Windows Azure Web Site / Node.jsNachdem ich eine Windows Azure Web Site angelegt, und Git Publishing aktiviert hatte, sollte nun auch ein wenig Inhalt folgen.
Hierbei fiel meine Wahl auf Node.js, sowie dem MVC Framework Express.js.

Windows Azure SDK für Node.js

Um Node.js Applikationen für Windows Azure entwickeln zu können, sollte man zuerst das Windows Azure SDK für Node.js installieren.

Dies geht am einfachsten über den Web Platform Installer:
„Windows Azure SDK für Node.js“ installieren

 

Express.js installieren

Anschließend kann man die Windows Azure PowerShell Konsole öffnen und in das bereits erstellte Stammverzeichnis der Web Site wechseln.

Für die Installation von Express.js nimmt man am Besten den Node-Paket-Managers (NPM).
Auf diese Weise installierte Pakete, werden im node_modules Verzeichnis gespeichert.

npm install express

 

Windows Azure PowerShell - Express.js Modul installieren

Als Nächstes muss man die Node.js / Express.js Applikation mittels mitgeliefertem Skript generieren lassen:

.node_modules.binexpress

 

Windows Azure PowerShell - Generieren einer Express-Anwendung

Dann noch die abhängigen NPM Module installieren …

npm install

 

Windows Azure PowerShell - Abhängige Module installieren

… und schon steht die Node.js / Express.js Applikation zum Testen und Erweitern bereit.

Den lokalen Node.js Server startet man mit folgendem Befehl:

node app.js

 

Windows Azure PowerShell - Node.js Applikation starten

Somit kann dann auch die lokale Applikation im Browser angezeigt werden.

Lokale Node.js Applikation

 

Anpassungen für die Cloud

Um das Ganze in Windows Azure als Web Site veröffentlichen zu können, muss zuerst noch der Port in der app.js angepasst werden, indem der app.listen Methodenaufruf mit process.env.port || erweitert wird.

Somit funktioniert die Applikation auf dem lokalen Rechner, sowie in der Cloud.

var express = require('express')
  , routes = require('./routes');

var app = module.exports = express.createServer();

// Configuration
app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});

app.configure('development', function(){
app.use(express.errorHandler({
dumpExceptions: true,
showStack: true
}));
});

app.configure('production', function(){
app.use(express.errorHandler());
});

// Routes
app.get('/', routes.index);

app.listen(process.env.port || 3000, function(){
console.log("Express server listening on port %d in %s mode",
app.address().port, app.settings.env);
});

 

Als Windows Azure Web Site veröffentlichen

Nach diesen Änderungen, kann die Windows Azure Web Site, wie gewohnt, mit GitHub for Windows veröffentlicht …

GitHub for Windows - Veröffentlichte Node.js Applikation

… und im Browser angezeigt werden.

Windows Azure Node.js Applikation

 

Eine View hinzufügen

Um eine weitere View in Express.js hinzuzufügen, erstellt man eine .jade Datei im views Verzeichnis.

Beispiel home.jade:

h1= title
p Willkommen in der Home View.

 

Anschließend muss diese zu den Routen (nach der Standardroute in der app.js) hinzugefügt werden:

var express = require('express')
  , routes = require('./routes');

var app = module.exports = express.createServer();

// Configuration
app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});

app.configure('development', function(){
app.use(express.errorHandler({
dumpExceptions: true,
showStack: true
}));
});

app.configure('production', function(){
app.use(express.errorHandler());
});

// Routes
app.get('/', routes.index);
app.get('/home', function(req, res) {
res.render('home', {
title: 'Home'
});
});

app.listen(process.env.port || 3000, function(){
console.log("Express server listening on port %d in %s mode",
app.address().port, app.settings.env);
});

 

Nach Windows Azure veröffentlichen und testen:

Windows Azure Node.js Applikation (Home View)

 


Weitere Informationen Weitere Informationen:

Check Also

Time Machine Backups nach Microsoft Azure

Seit einigen Jahren verwende ich eine Apple Time Capsule, um meine Time Machine Backups an einem zentralen Ort speichern zu können. Bislang hatte das für mich auch vollkommen ausgereicht. Seitdem ich jedoch immer mehr unterwegs bin, habe ich nach einer Lösung gesucht, die ich auch von unterwegs nutzen kann. In diesem Blog Post zeige ich deshalb, wie man Time Machine Backups nach Microsoft Azure machen kann.