Node.js est un framework Javascript qui s'exécute côté serveur, il est construit sur le moteur V8 (compilation à la volée), le très performant moteur Javascript open source soutenu par Google et utilisé par le navigateur Chrome. Node est non-bloquant, asynchrone, scalable et donc prêt pour le cloud computing !
Plusieurs serveurs web existent et tente de répondre de façon efficace à la problématique de la montée en charge. En effet, beaucoup de sites abandonnent le très connu serveur web Apache, pour utiliser des serveurs répondant à la problématique des 10K connections concurrentes, C10K :
Node.js reprend le même principe, il fournit une API, qui permet de réaliser des applications web, non-bloquantes, temps-réel, performantes, asynchrones, scalables et donc prêtes pour le cloud computing !
Présentation de node.js
Quelques exemples, commençons par le Hello World :
#!/usr/local/bin/node
var sys = require("sys"),
http = require("http");
http.createServer(function(request, response) {
response.sendHeader(200, {"Content-Type": "text/html"});
response.write("Hello World!");
response.close();
}).listen(8080);
sys.puts("Server running at http://localhost:8080/");
#!/usr/local/bin/node
var sys = require("sys"),
http = require("http"),
url = require("url"),
path = require("path"),
fs = require("fs");
results = {};
fs.readdir(".", function (err, files) {
var count = files.length;
files.forEach(function (filename) {
fs.readFile(filename, function (err, data) {
results[filename] = data;
count--;
if (count <= 0) {}
});
});
});
http.createServer(function(request, response)
{
url=request.url.match(/\/(.*)/);
if(url[1]!="favicon.ico") {
var file=results[url[1]];
response.writeHead(200);
response.write(file);
response.end();
}
}).listen(8080);
sys.puts("Server running at http://localhost:8080/");
Il existe également, des moteurs de blog écrit avec node.js comme : express.js, en attendant la prochaine de PHP 5.4 qui sera livré avec PHP-FPM, qui nous vient de Russie, tout comme Nginx. Voir l'article : Apache est mort, et c'est PHP qui mettra les clous dans le cercueil.
Node.js fonctionne sur Linux, Macintosh, Solaris, Windows/Cygwin, FreeBSD et OpenBSD, sur les architectures IA-32, x64, ARM.