Node.js Exploitez la puissance de JavaScript côté serveur
Présentation
La progression pédagogique choisie par les auteurs débute par l'installation de Node sur les trois grands systèmes d'exploitation (GNU/Linux, OS X et Windows) puis couvre le fonctionnement du gestionnaire de paquets « npm », qui est le compagnon quotidien du développeur Node, et la présentation des concepts essentiels de la plateforme.
Les chapitres suivants présentent les puissants paradigmes que sont les flux et les promesses puis enchaînent sur des explications pratiques concernant la manipulation de fichiers et l'utilisation de bases de données. Viennent ensuite l'écriture des tests, les outils de développement qui permettent d'améliorer la qualité du code et de simplifier la vie du développeur en automatisant un maximum de tâches (comme par exemple JSHint et Gulp), les bonnes pratiques pour déboguer efficacement du code puis tout ce qu'il faut savoir pour la mise en production des applications.
Tout au long du livre, l'accent est mis sur les bonnes pratiques et l'ensemble des exemples présentés dans le livre est disponible sur le dépôt GitHub du livre afin que le lecteur puisse se lancer le plus rapidement possible.
Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr.
Les chapitres du livre :
Avant-propos – Présentation – Installation – Gestionnaire de paquets npm – Concepts – Flux – Manipulation de fichiers – Promesses – Application en ligne de commande – Application web – Bases de données – Tests – Outils de développement – Débogage – Mise en production
Table des matières
-
Avant-propos
- 1. Pourquoi ce livre ?
- 2. À qui s'adresse cet ouvrage ?
- 3. Structure de l'ouvrage
-
Présentation
- 1. Introduction
- 2. Définition de Node
- 3. Historique
- 4. Success-stories
- 5. Programmation orientée composant
-
Installation
- 1. Introduction
- 2. GNU/Linux
- 2.1 n : simple et efficace
- 2.2 Via les paquets
- 2.2.1 Ubuntu/Debian
- 2.2.2 Gentoo
- 2.2.3 ArchLinux
- 2.2.4 RHEL, CentOS, Fedora, etc.
- 2.3 Via les sources
- 3. OpenBSD et FreeBSD
- 4. Mac OS
- 5. Windows
- 6. Vérification de l’installation
-
Gestionnaire de paquets npm
- 1. Introduction
- 1.1 Qu'est-ce qu'un paquet ?
- 1.2 Exemple d'installation
- 1.3 Registre npmjs.org
- 1.4 Paquet global
- 2. Recherche du bon paquet
- 2.1 Recherche en ligne de commande
- 2.2 Recherche sur npmjs.org
- 2.3 Critères de confiance
- 2.3.1 Popularité sur GitHub
- 2.3.2 Intégration continue
- 3. Versionnage
- 3.1 Numéro de version
- 3.2 Contrainte de version
- 4. Gestion des dépendances
- 4.1 Ajout
- 4.1.1 Dépendance de production
- 4.1.2 Dépendance optionnelle
- 4.1.3 Développement
- 4.2 Mise à jour
- 4.3 Suppression
- 4.4 Listage des dépendances
- 4.5 Installation des dépendances manquantes
- 4.1 Ajout
- 5. Publication d’un paquet
- 5.1 Création d'un compte sur le registre
- 5.2 Saisie des métadonnées
- 5.3 Exécutables
- 5.4 Publication
- 6. Gestion d’un paquet publié
- 6.1 Mise à jour
- 6.2 Ajout des mainteneurs
- 1. Introduction
-
Concepts
- 1. Introduction
- 2. Modules
- 2.1 Modules de base
- 2.1.1 Stabilité
- 2.1.2 Exemple
- 2.1 Modules de base
- 3. Variables globales
- 3.1 global
- 3.2 process
- 3.2.1 Événements
- 3.2.2 Signaux
- 3.2.3 Flux
- 3.2.4 Contexte d'exécution
- 3.2.5 Métriques
- 3.3 console
- 3.4 Buffer
- 3.4.1 Construction
- 3.4.2 Conversion
- 3.4.3 Manipulation
- 3.5 require()
- 3.6 __filename et __dirname
- 3.7 module
- 3.8 exports
- 3.9 Minuteurs
- 4. Programmation asynchrone
- 4.1 API asynchrone dans Node
- 4.2 Programmation événementielle
- 4.3 Boucle d’événements
- 4.3.1 Fonctionnement simplifié
- 4.3.2 Fonctionnement détaillé
-
Flux
- 1. Introduction
- 1.1 Qu'est-ce qu'un flux ?
- 1.1.1 Mode de flux
- 1.2 Pourquoi utiliser un flux ?
- 1.1 Qu'est-ce qu'un flux ?
- 2. Construction
- 2.1 Readable
- 2.2 Writable
- 2.3 Duplex
- 2.4 Transform
- 3. Utilisation
- 3.1 Lecture
- 3.1.1 Mode flot
- 3.1.2 Mode à la demande
- 3.1.3 Sélection du mode de lecture
- 3.2 Écriture
- 3.3 Connexion
- 3.1 Lecture
- 4. Omniprésence dans Node
- 4.1 Réseau
- 4.2 Fichiers
- 5. Implémentations et compatibilité
- 5.1 Support des flux version 1
- 5.2 S'affranchir de la version de Node
- 1. Introduction
-
Manipulation de fichiers
- 1. Introduction
- 2. Manipulation de chemin
- 3. Manipulation de dossiers
- 4. Manipulation de fichiers
- 4.1 Métadonnées
- 4.2 Surveillance
- 5. Manipulation de liens symboliques
-
Promesses
- 1. Introduction
- 2. Callbacks vs promesses
- 3. Notion de promesse
- 3.1 États d'une promesse
- 3.2 Similarité avec du code synchrone
- 3.3 Gestion des erreurs
- 4. Création d'une promesse
- 4.1 À la main
- 4.2 À partir d'une fonction Node
- 4.3 À partir d'un événement
- 5. Intégration avec Node
- 6. Intégration avec les générateurs
-
Application en ligne de commande
- 1. Introduction
- 2. Gestion des paramètres
- 3. Testabilité
- 4. Exécution directe
- 5. Installation du programme
- 6. Exemple complet
-
Application web
- 1. Introduction
- 2. Générateur Express
- 3. Application
- 4. Architecture
- 5. Requête
- 6. Réponse
- 7. Distribution de fichiers statiques
- 8. Routage
-
Bases de données
- 1. Introduction
- 2. SQL
- 2.1 PostgreSQL
- 3. NoSQL
- 3.1 MongoDB
- 3.1.1 Mongoose
- 3.2 Redis
- 3.3 LevelDB
- 3.1 MongoDB
-
Tests
- 1. Introduction
- 2. Lanceur de tests - Mocha
- 2.1 Installation
- 2.2 Création d'une suite de tests
- 3. Assertions - Chai
- 4. Espions et bouchons - Sinon.js
- 4.1 Espions
- 4.2 Bouchons
-
Outils de développement
- 1. Introduction
- 2. Automatisation de tâches - Gulpjs
- 2.1 Installation
- 2.2 Création de tâches
- 3. Analyse du code - JSHint
- 3.1 Installation et utilisation
- 3.2 Configuration
- 3.3 Environnements
- 3.4 Options générales
- 3.5 Options de mise en conformité
- 3.6 Options assouplissantes
- 4. Redémarrage automatique - node-dev
- 5. Browserify
-
Débogage
- 1. Introduction
- 2. Ajout de traces
- 3. Node-Inspector
- 3.1 Installation et lancement
- 3.2 Contrôle de l'exécution
- 3.3 Inspection
- 3.4 Intervention
-
Mise en production
- 1. Introduction
- 2. Forever
- 3. Supervision
- 4. Recettes
- 4.1 Reverse proxy
- 4.1.1 Avec Apache
- 4.1.2 Avec Nginx
- 4.2 Intégration avec systemd (GNU/Linux)
- 4.2.1 Fichier de configuration
- 4.2.2 Activation
- 4.2.3 Utilisation
- 4.3 Intégration avec SaltStack
- 4.3.1 Installation et déploiement
- 4.3.2 npm via SaltStack
- 4.1 Reverse proxy
- Index
Auteurs
Julien FONTANETEn savoir plus
Julien Fontanet a démarré sa carrière d'informaticien comme Consultant indépendant autour du développement Open source. Olivier Lambert a été Administrateur système et réseau dans une multinationale.
En 2012, Julien et Olivier décident de mutualiser leur expérience et leurs compétences et créent leur entreprise, Vates SAS. Ils sont à l'origine de la solution Xen Orchestra et leur quotidien est aujourd'hui fait de développement JavaScript avec Node.js. Ils dispensent régulièrement des formations sur cette plateforme ainsi que sur AngularJS et Git. À travers les pages de ce livre ils partagent avec enthousiasme leur connaissance de Node et fournissent aux lecteurs un ouvrage complètement opérationnel sur le sujet.
Olivier LAMBERTEn savoir plus
Julien Fontanet a démarré sa carrière d'informaticien comme Consultant indépendant autour du développement Open source. Olivier Lambert a été Administrateur système et réseau dans une multinationale.
En 2012, Julien et Olivier décident de mutualiser leur expérience et leurs compétences et créent leur entreprise, Vates SAS. Ils sont à l'origine de la solution Xen Orchestra et leur quotidien est aujourd'hui fait de développement JavaScript avec Node.js. Ils dispensent régulièrement des formations sur cette plateforme ainsi que sur AngularJS et Git. À travers les pages de ce livre ils partagent avec enthousiasme leur connaissance de Node et fournissent aux lecteurs un ouvrage complètement opérationnel sur le sujet.
Caractéristiques
- Niveau Confirmé à Expert
- Nombre de pages 231 pages
- Parution mars 2015
- Livre (broché) - 17 x 21 cm
- ISBN : 978-2-7460-0897-5
- EAN : 9782746089785
- Ref. ENI : EINOD
- Niveau Confirmé à Expert
- Parution mars 2015
- HTML
- ISBN : 978-2-7460-9586-1
- EAN : 9782746095861
- Ref. ENI : LNEINOD
Téléchargements
- Des fichiers complémentaires (48 Ko)