Les guerres d'un Responsable Informatique

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 framework

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 :

Ceux-ci sont mono-thread, traitent les I/O de manière non-bloquante, contrairement à Apache.

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/"); 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

Directeur des systemes d'information

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 !


Partagez cet article :



Fil des commentaires de cet article

3 commentaire(s) Commentaires »

  1. Merci numberxiii, ce script Node.js fonctionnait avec les anciennes versions. Comme l'API change, mon exemple, doit effectivement plus être tout à fait adapté ...

  2. Une petite correction pour le script helloworld :
    ligne 7 : response.writeHead(...)
    ligne 9 : response.end();

  3. 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

Laisser un Commentaire

Quelle est la deuxième lettre du mot qgwjs ? :