Vous êtes passionnés comme moi de machines basse-consommation, ARM, Atom : rendez visite à mon partenaire !
Développement web avec node.js
mardi 06 juillet 2010 à 13:44 | Dev
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 :
- Nginx
- Lighttpd
- ...
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 node.js en pdf
- Wiki node.js
- Exemple de traitement d'upload de fichier a 500Mb/sec avec node.js
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/");
Maintenant, un script que j'ai commencé à développé, il lit les fichiers d'un répertoire, les stocke en mémoire et les affiche sur votre navigateur :
#!/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/");
Le but de ce script est de pouvoir à terme, "servir" les fichiers statiques de mon blog de façon plus rapide, en supprimant les envois de cookies, ... Ainsi, une partie des traitements est distribuée et en cas de montée en charge, ils peuvent être délégué à un autre serveur, la scalabilité et le cloud computing en ligne de mire :)
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.
A propos de Vincent RABAH
Je suis DSI depuis 10 ans. Spécialiste en systèmes d'information et réseaux.
Expert en management, GreenIT et virtualisation de serveurs. Vous pouvez consulter l'ensemble de mon parcours.
I do speak English even if my blog is written in French ... Feel free to leave comments, I'll answer you !
- Sauvegarder Active Directory et le serveur DHCP
- Microsoft et Joyent portent Node.js sur Windows
- Url rewriting avec Nginx pour Pluxml
- Node.JS ToolBox
- Real-time log monitoring avec Node.js et Log.io
- Un SlideShow 3D avec HTML5 et CSS3
- Up and Running with Node.js
- Google Analytics en Ruby
- Node.js v0.6.0 est sorti
- Twitter Stream avec NodeJS Socket.IO et Express
Vous pouvez lire également :
Partagez cet article :





Merci numberxiii, ce script Node.js fonctionnait avec les anciennes versions. Comme l'API change, mon exemple, doit effectivement plus être tout à fait adapté ...
Une petite correction pour le script helloworld :
ligne 7 : response.writeHead(...)
ligne 9 : response.end();
Je viens de trouver un lien intéressant, qui explique comment installer node.js sur Windows :
http://blog.dtrejo.com/how-to-install-nodejs-on-windows