Introduction à Node.JS Vincent Peybernes
Introduction à Node.JS Une plate-forme de développement d'application en JavaScript open source. Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. nodejs.org
Introduction à Node.JS Plateforme open-source Un exécutable ‘node’ Le moteur JavaScript V8 Une API filesystem & network Un single-thread event loop Une API asynchrone
Node.JS => HTTP/1.1 www8.org Introduction à Node.JS Supporte tout HTTP/1.1 Connexions persistantes et pipelines Système de cache amélioré Sécurité améliorée www8.org
Node.JS => modulaire Introduction à Node.JS Node.JS => modulaire Une implémentation de CommonJS : require() Un dépôt de module : NPM (plus de 15k modules) Une API pour l’exposition des modules application cmd-conf Majorité des modules open-source (GitHub)
Node.JS => API asynchrone Introduction à Node.JS Node.JS => API asynchrone Le roi ordonne et traite dans l’ordre où les exécutants reviennent.
Node.JS => mono tâche Introduction à Node.JS Node.JS => mono tâche Pas de traitement simultané au sein d’un thread Long calcule = attente Mais... Module système naturellement multi-thread Fork et spawn Clustering
Node.JS + C++ = ♥ Introduction à Node.JS Appel de commande système : child_process. Javascript V8 (librairie C++) Module Addon C/C++ Mapping d’objet C++ Appel de callback JS par C++
Node.JS et le stockage de donnée. Introduction à Node.JS Node.JS et le stockage de donnée. Pas de système de incorporé natif. Module de driver multiple NoSQL : Redis, MongoDB... SQL : MySQL, OracleDB, MS SQL, PostGres...
Node.JS et plus si affinité... Introduction à Node.JS Node.JS et plus si affinité... File System HTTP/SSL/URL IO de la console Stream Crypto DNS (résolution) VM JavaScript Socket Event ...
Concrètement Introduction à Node.JS Application temps réel Application à forte disponibilité Traitement léger Donnée à faible typage JavaScript != POO
Qui aime Node.JS ? Introduction à Node.JS Yahoo! Manhattan https://github.com/joyent/node/wiki Projects, Applications, and Companies Using Node
À proposer au client avec précaution. Introduction à Node.JS Pourquoi pas vous ? Version 0.8.12 Refactor d’API Recul insuffisant Interfaçage incomplet avec d’autre outils À proposer au client avec précaution.
Démo Socket Chat Introduction à Node.JS http://valtech-demo.techniv.fr/ http://browserquest.mozilla.org/
public.haveQuestion(function(){ speaker.log("bla bla"); }); Introduction à Node.JS public.haveQuestion(function(){ speaker.log("bla bla"); });