Programmation avec Node.js, Express.js et MongoDB

-

Livres
608 pages
Lire un extrait
Obtenez un accès à la bibliothèque pour le consulter en ligne
En savoir plus

Description


Un livre incontournable pour développer des applications web professionnelles !



Né à la fin des années 1990, le langage JavaScript connaît aujourd'hui une deuxième vie. Après s'être installé sur pratiquement tous les sites web de la planète, il s'invite désormais sur de plus en plus de serveurs web, notamment grâce à Node.js qui symbolise le JavaScript côté serveur. Node.js est donc plus que jamais une plate-forme de développement très en vogue, utilisée notamment par Flickr, Linkedln et PayPal.



Des outils de plus en plus populaires



Ce livre propose une présentation pas à pas pour mettre en place une application web avec Node.js, Express.js et Mon- goDB. Plus que de simples phénomènes de mode, ces outils sont désormais incontournables pour tous les développeurs web. Un livre extrêmement pratique où les aficionados d'Éric Sarrion retrouveront sa minutie dans la description de chaque étape et chausse-trappe.



A qui s'adresse ce livre ?




  • Aux étudiants, développeurs et chefs de projet


  • A tous les autodidactes férus de programmation qui veulent découvrir Node.js




  • Le coeur de Node.js


    • Introduction à Node.js


    • Gestion des modules


    • Gestion des événements


    • Méthodes utilitaires


    • Gestion des streams


    • Gestion des fichiers


    • Gestion des processus


    • Gestion des connexions TCP


    • Gestions des connexions UDP


    • Gestions des connexions HTTP


    • Utiliser les web sockets avec socket.io




  • Construire des applications web avec le Framework Express


    • Introduction au module Connect


    • Utiliser les middlewares définis dans Connect


    • Introduction au framework Express


    • Routage des requêtes avec Express


    • Envoyer la réponse du serveur


    • Objets app, req et res utilisés par Express


    • Créer les vues avec EJS




  • Utiliser la base de données MongoDB avec Node


    • Introduction à MongoDB


    • Introduction au module Mongoose


    • Rechercher des documents


    • Modifier des documents


    • Supprimer des documents


    • Valider les données


    • Utiliser le concept de population


    • Utiliser les middlewares dans Mongoose


    • Construction d'une application client/serveur




  • Quelques modules Node (très) utiles


    • Le module async


    • Le module supervisor


    • Le module node-inspector


    • Le module mongo-express



Sujets

Informations

Publié par
Date de parution 30 octobre 2014
Nombre de visites sur la page 2 378
EAN13 9782212292084
Langue Français

Informations légales : prix de location à la page 0,0165 €. Cette information est donnée uniquement à titre indicatif conformément à la législation en vigueur.

Signaler un problème
Éric Sarrion
ProgrammationNode.js, avec Express.jsetMongoDB
JavaScript côté serveur
Éric Sarrion Formateur et développeur en tant que consultant indépendant,Éric Sarrionparticipe à toutes sortes de pro-jets informatiques depuis plus de 25 ans. Auteur des deux best-sellersjQuery & jQuery UIetjQuery mobile aux éditions Eyrolles, il est réputé pour la limpidité de ses explications et de ses exemples.
Un livre incontournable pour développer des applications web professionnelles ! Né à la ïn des années 1990, le langage JavaScript connaît aujourd’hui une deuxième vie. Après s’être installé sur prati-quement tous les sites web de la planète, il s’invite désormais sur de plus en plus de serveurs web, notamment grâce à Node.js qui symbolise le JavaScript côté serveur. Node.js est donc plus que jamais une plate-forme de développement très en vogue, utilisée notamment par Flickr, LinkedIn et PayPal.
Des outils de plus en plus populaires Ce livre propose une présentation pas à pas pour mettre en place une application web avec Node.js, Express.js et Mon-goDB. Plus que de simples phénomènes de mode, ces outils sont désormais incontournables pour tous les développeurs web. Un livre extrêmement pratique où les aïcionados d’Éric Sarrion retrouveront sa minutie dans la description de chaque étape et chausse-trappe.
À qui s’adresse ce livre ? • Aux étudiants, développeurs et chefs de projet • À tous les autodidactes férus de programmation qui veulent découvrir Node.js
Au sommaire Introduction à Node.js.Un premier programme avec Node.js • Utiliser REPL.Gestion des modules.Visibilité des variables • Le ïchier package.json.Gestion des événements.Méthodes utilitaires • Gestion des streams. Gestion des îchiers. Gestion des processus.Exécuter un processus grâce à la méthode exec() du module child_process • Exécuter un processus grâce à la méthode spawn() du module child_process • Communication entre le processus père et le processus ïls.Gestion des connexions TCP et UDP. Gestion des connexions HTTP.Créer un serveur et un client HTTP.Utiliser les web sockets avec socket.io. Introduction au module Connect.Utiliser les middlewares déïnis dans Connect.Introduction au framework Express. Installer le framework Express • Créer une application web avec Express • Architecture d’une application Express • Le modèle MVC • Routage des requêtes avec Express • Qu’est-ce qu’une route ? • Architecture REST • Objet app.routes déïni par Express • Déïnir l’URL dans les routes • Organiser l’écriture des routes en créant des modules séparés • Organiser l’écriture des routes en utilisant REST • Bien utiliser les middlewares.Envoyer la réponse du serveur. Objets app, req et res utilisés par Express.Objet app : gérer l’application Express • Gérer le format des varia-bles dans les URL • Récupérer et modiïer le code HTML généré par une vue • Partager des objets avec les vues • Objet req : gérer la requête reçue • Récupérer les informations transmises par les utilisateurs • Récupérer les informations sur la route utilisée • Objet res : gérer la réponse à envoyer • Créer les vues avec EJS • Installer EJS. Une première vue avec EJS • Transmettre des paramètres à la vue • Cas pratique : utiliser plusieurs vues dans une application.Introduction à MongoDB.Installer MongoDB • Documents et collections • Utiliser l’exécutable mongo • Établir une connexion à la base de données • Créer des documents • Rechercher des documents • Mettre à jour des documents • Supprimer des documents • Actions globales sur une collection • Actions globa-les sur une base de données.Introduction au module Mongoose.Installer le module Mongoose • Établir une connexion à la base de données avec Mongoose • Utiliser les schémas et les modèles.Créer des documents.Rechercher des documents.Modiîer des documents.Supprimer des documents • Valider les données.Utiliser le concept de population. Utiliser les middlewares dans Mongoose.d’une application client Construction serveur • Le module async • Le module supervisor • Le module node-inspector • Le module mongo-express.
Code éditeur : G13994 ISBN : 978-2-212-13994-5
ProgrammationNode.js, avec Express.jsetMongoDB
Chezlemêmeéditeur
Danslamêmecollection
DanslacollectionBlanche
DanslacollectionDesignweB
autresouvrages
Retrouvez aussi nos livres numériques sur http://izibook.eyrolles.com
Éric Sarrion
ProgrammationNode.js, avec Express.jsetMongoDB
JavaScript côté serveur
ÉDITIONS EYROLLES 61, bd Saint-Germain 75240 Paris Cedex 05 www.editions-eyrolles.com
En application de la loi du 11 mars 1957, il est interdit de reproduire intégralement ou partiellement le présent ouvrage, sur quelque support que ce soit, sans l’autorisation de l’Éditeur ou du Centre Français d’exploitation du droit de copie, 20, rue des Grands Augustins, 75006 Paris. © Groupe Eyrolles, 2014, ISBN : 978-2-212-13994-5
Ava
n
t
p
rop
o
s
Pourquoi un livre sur Node.js ? Node.js séduit de plus en plus de développeurs web, satisfaits de pouvoir manipuler les couches hautes (réaliser une application web) et les couches basses (manipuler les octets échangés entre un client et un serveur) lors de la construction d’une applica tion. Node.js est très extensible et il existe de nombreux modules, écrits par d’autres développeurs, qui répondront sûrement à vos besoins. De plus, Node est écrit et s’utilise en JavaScript. Ce langage est initialement réservé aux programmes exécutés par les navigateurs, mais Node en a fait un langage utili sable également côté serveur. Cela permet, avec la connaissance d’un seul langage, d’écrire des programmes à la fois pour le client et pour le serveur. Enfin, la popularité de Node vient aussi de sa rapidité d’exécution. Cette dernière est liée à son architecture événementielle, qui le rend différent des autres types de serveurs. Pour toutes ces raisons (et sûrement d’autres encore), Node.js mérite bien d’avoir un livre en français, qui explique comment l’utiliser pour réaliser des applications complètes.
Structure du livre Ce livre est divisé en quatre parties, qu’il vaut mieux lire dans l’ordre. La première partie décrit le cœur de Node.js. Cette partie est essentielle pour comprendre la suite de l’ouvrage. La deuxième partie décrit le module Express écrit pour Node, qui permet de construire plus aisément des applications web. La troisième partie décrit l’interaction avec une base de données orientée docu ments, telle que MongoDB. Le module Mongoose, permettant une interface
VI
Programmation avec Node.js, Express.js et MongoDB
entre Node et MongoDB, est décrit en détail. Cette partie se termine par la cons truction d’une application web utilisant l’ensemble des connaissances acquises. La quatrième partie se consacre à l’étude de quelques modules utiles de Node.js.
On aurait pu écrire un nouveau livre rien que sur cette quatrième partie, tellement l’écosystème autour de Node est important.
À qui s’adresse ce livre ? Ce livre s’adresse à tous ceux qui sont curieux de savoir comment fonctionne Node.js ! Donc le public sera varié, pouvant être des développeurs, des chefs de projet, mais également des étudiants en informatique.
Table des matières
PREMIÈREPARTIE Le cœur de Node.js .........................................................1
CHAPITRE1 Introduction à Node.js .................................................................. 3 Installation de Node.js3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Un premier programme avec Node.js4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Principe de fonctionnement de Node.js. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Utiliser REPL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
CHAPITRE2 Gestion des modules ..................................................................... 7 Inclusion de modules dans un fichier JavaScript. . . . . . . . . . . . . . . . . . . . . . . . . . 7 Définir le module dans un fichier JavaScript externe . . . . . . . . . . . . . . . . . . . . . 8 Définir le module par un ensemble de fichiers situés dans un même répertoire . . 9 Utiliser le fichier index.js . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Utiliser le répertoire node_modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Utiliser un module standard défini par Node. . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Télécharger de nouveaux modules avec npm. . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Écrire un module proposant de nouvelles fonctionnalités. . . . . . . . . . . . . . . . . . 20 Cas particulier : un module composé d’une fonction principale. . . . . . . . . . . . . . 23 L’objet module défini par Node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Mise en cache des modules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Visibilité des variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Le fichier package.json. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
CHAPITRE3 Gestion des événements............................................................. 31 Pourquoi utiliser la classe events.EventEmitter ?. . . . . . . . . . . . . . . . . . . . . . . . . 31 Créer un objet de la classe events.EventEmitter. . . . . . . . . . . . . . . . . . . 32. . . . . . . Gérer des événements sur un objet de classe events.EventEmitter. . . . . . . . . . . 33
VIII
Programmation avec Node.js, Express.js et MongoDB
Utiliser les méthodes addListener() et emit() . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Utiliser plusieurs fois la méthode addListener() . . . . . . . . . . . . . . . . . . . . . . . . 35 Supprimer un gestionnaire d’événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Supprimer tous les gestionnaires pour un événement . . . . . . . . . . . . . . . . . . . . 38 Transmettre des paramètres lors de l’événement . . . . . . . . . . . . . . . . . . . . . . . 39 Créer une classe dérivant de events.EventEmitter41. . . . . . . . . . . . . . . . . . . . . . . . Implémentation d’une classe Server simple . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Créer plusieurs serveurs associés à la classe Server . . . . . . . . . . . . . . . . . . . . . . 42 Amélioration du programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Méthodes définies dans la classe events.EventEmitter. . . . . . . . . . . . . . . . . . . . 45
CHAPITRE4 Méthodes utilitaires .................................................................... 47 Gestion de l’affichage à l’écran : objet console47. . . . . . . . . . . . . . . . . . . . . . . . . . . Utiliser console.log() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Utiliser console.time(label) et console.timeEnd(label) . . . . . . . . . . . . . . . . . . . 49 Utiliser console.dir(obj) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Fonctions générales : module util. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Formatage de chaîne de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Inspecter des objets avec util.inspect() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Héritage de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Méthodes booléennes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Gestion des URL : module url. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Utiliser url.parse() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Utiliser url.resolve() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Gestion des requêtes : module querystring60. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gestion des chemins : module path61. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gestion d’octets : classe Buffer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Créer un objet de classe Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Modifier un buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Copier et découper un buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Changer l’encodage d’une chaîne au moyen d’un buffer . . . . . . . . . . . . . . . . . . 69 Connaître la taille d’une chaîne de caractères en octets . . . . . . . . . . . . . . . . . . 70 Gestion des timers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
CHAPITRE5 Gestion des streams .................................................................... 73 Créer un stream en lecture. . . . . . . . . . . . . . . . . . . . 74. . . . . . . . . . . . . . . . . . . . . . Utiliser l’événement data sur le stream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Définir la méthode _read() sur le stream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Indiquer l’encodage pour les paquets lus sur le stream . . . . . . . . . . . . . . . . . . . 80