background preloader

NodeJs

Facebook Twitter

Réaliser une appli Web RIA avec ExtJS et Node.js. ExtJS est un framework pour Javascript qui permet de créer facilement des RIA (Rich Internet Application).

Réaliser une appli Web RIA avec ExtJS et Node.js

Dans ce billet, je vous propose de développer un mini-blog dans lequel nous pourrons lister, créer, éditer et supprimer des billets. Pour le développement côté client, ce mini projet permet de mettre en oeuvre les notions suivantes: l’utilisation de formulairesla validation de donnéesl’utilisation d’un proxy pour faire des requêtes AJAXla levée et l’écoute d’événementsla mise en oeuvre de callbacks (gestion asynchrone) Côté serveur, le développement sera fait en Node.js et son framework Express.

J’imagine que certains lecteurs préféreraient avoir du code PHP mais désolé, je n’aime pas trop PHP… De plus, vous trouverez sans mal des exemples en PHP dans les exemples officiels fournis avec ExtJS ou sur divers blogs. Le code côté serveur permettra de balayer les notions suivantes: Le tutoriel peut être réalisé sous n’importe quel OS. Bonne nouvelle: pas besoin de l’usine à gaz Apache! Store. Node.js : le livre du débutant. JavaScript et vous▲ Avant de rentrer dans les détails techniques, prenons un moment pour parler de vous et de votre rapport avec JavaScript.

Node.js : le livre du débutant

Ce chapitre va vous servir à déterminer s'il vous est utile de continuer la lecture de ce livre. Si vous êtes comme moi, vous avez commencé le développement Web il y a quelques années en écrivant des pages HTML. Vous avez commencé à utiliser cette chose étrange appelée JavaScript, mais juste pour ajouter un peu d'interactivité ici ou là.

Ce que vous vouliez était surtout apprendre à créer des pages Web complexes ; vous avez donc appris des langages comme PHP, Ruby, Java pour écrire du code serveur. Malgré tout, vous avez gardé un œil sur JavaScript et avez découvert, avec l'apparition de jQuery, Prototype ou autres bibliothèques, que JavaScript pouvait réaliser des choses avancées, bien au-delà de simples window.open(). Node.js async in practice: When to use what? When I started out using node.js and async I didn't find any good/thorough resources on how to really use the async module.

Node.js async in practice: When to use what?

That's why I decided to make a little cookbook about it. What is async solving? An antipattern Async and other similar Node.js control flow modules seek to simplify code such as this: Since the two db calls are asynchronous we don't know which one of them is going to finish first. And what happens when we need to add another asynchronous task? This is where async comes to our aid and makes the code sane to look at and easy to maintain. Important note about callbacks and errors One thing that wasn't obvious to me when I first looked at async, was the way callbacks are used. Generally all the async functions take a set of tasks to perform as argument. Besides the set of tasks the async functions also take a callback function as argument, let's call this the final callback.

Example: The 4 lines of error handling gets pretty tedious. If (err) return callback(err); Ecouter des évènements. Surprise !

Ecouter des évènements

Vous savez déjà écouter des évènements en JavaScript. Allons, vous n'allez pas me faire croire que vous n'avez jamais utilisé une bibliothèque comme jQuery pour écouter des évènements sur votre page web ! Par exemple : 1$("canvas").on("mouseleave", function() { ... }); Avec ce genre d'instruction, vous demandez à exécuter une fonction de callback quand la souris sort d'un élément <canvas> de la page. Avec Node.js, le principe est exactement le même.

Prenons par exemple le module "http" que nous avons utilisé pour créer notre serveur web. Comment écouter ces évènements ? Le nom de l'évènement que vous écoutez (ici "close")La fonction de callback à appeler quand l'évènement survient Exemple : 1server.on('close', function() { Je vous propose un exemple concret et complet. 1var http = require('http'); 3var server = http.createServer(function(req, res) { 4 res.writeHead(200); 5 res.end('Salut tout le monde !

') HTTP Node. Stability: 3 - Stable To use the HTTP server and client one must require('http').

HTTP Node

The HTTP interfaces in Node are designed to support many features of the protocol which have been traditionally difficult to use. In particular, large, possibly chunk-encoded, messages. The interface is careful to never buffer entire requests or responses--the user is able to stream data. HTTP message headers are represented by an object like this: