Nodejs HTTP-Server

Schreibt man eine Client-Anwendung, die mit einem Server kommunizieren soll, weclhes zum Testing nicht zur Verfügung steht, muss man schauen, wie man die Kommunikation simulieren kann. Am besten wäre eine Test-Implementierung des Servers, der die Spezifikation/API unterstützt. Bevor die Spezifikation zum Test implementiert werden kann, muss jedoch die Grundfunktionalität (HTTP) des Server implementiert werden. Um sich das zu ersparen, kann man z.B. nodejs verwenden.

var http = require('http'),
	url = require('url');

var results = \["status=OK&desc=Alles paletti&url=http://www.heise.de/",
			   "status=NOK&desc=Oh, problem&url="\];
	
var httpServer = http.createServer();

httpServer.on('request', function(request, response) {
	// Parse the entire URI to get just the query
	var query = url.parse(request.url, true).query;
	// parse the query parameters
	var param1 	= query\['p1'\];
	var param2	= query\['p2'\];
	var param3	= query\['p3'\];
	
	// Do something with the parameters to generate the response.....
	
	// return random response
	response.writeHead(200, {'Content-Type': 'text/plain'});
	var rnd = Math.floor(Math.random() \* results.length)
	response.end(results\[rnd\]);
});

httpServer.listen(1337, '127.0.0.1');

console.log('- Server running at http://127.0.0.1:1337/');

Wie man sehen kann, wird in wenigen Zeilen JavaScript ein HTTP-Server geschrieben, der auf den "request"-Event horcht. Bei jedem Request werden die Parameter ermittelt und die Response generiert. Nodejs bietet verschiedene Events an, für die ein Callback-Funktion registriert werden kann. Beim HTTP-Server sind das z.B.: request, connection, close. Weitere Details sind in der Docu zu finden.

Links:

comment

Comments

arrow_back

Previous

CDI in JavaSE

Next

REST JMX Monitoring
arrow_forward