NodeJS in real life ! 
@wleloutre
Qu’est-ce que la vraie vie ? 
concevoir des sites web ? des applications ?
#Intro 
Mon expérience avec Javascript, 
comme intégrateur web
• Premiers pas avec notre ami à tous jQuery ! 
• Basculement vers une méthode « VanillaJS » 
• Création d’apps hybrides via Cordova 
• Apprentissage & Expérimentation des API 
HTML5 web storage, Offline web application, … 
• Utilisation des Nodes Modules pour mon 
Workflow (Grunt, Bower, Yeoman, …)
Et après ? NodeJs ? 
Tout le monde me dit que c’est LA solution ultime en JS
Encore un outil de dev… 
Il y en a vraiment trop, que faire ?
De quoi ai-je besoin ? 
Des meilleurs outils qu’il puisse exister ?
Pour quel type de projet ? 
Software, middleware, Hardware ?
Un peu tout ça en même temps ! 
Comment suivre toutes ces technologies ?
Je suis <multitâches> 
Il me faut une technologie qui couvre mes besoins 
dans la vraie vie !
Quoi ? NodeJS est LA solution ? 
Pour travailler en front-back, sur tout type d’architecture…
Moi perso mon truc… 
C’est les CMS ! (enfin ça dépend hein !)
Comment intégrer NodeJs 
Dans mon CMS préféré ?
Mieux ! 
Et pourquoi pas un CMS Full JS propulsé par NodeJs ?
Google recherche CMS NodeJS… 
O/
Go ?
Simple, léger, … 
Ok je prend ça pour mon blog perso !
Une minute 
En local ça va mais, NodeJs est-il compatible 
avec mon hébergement mutalisé ?
• npm start 
• # ghost running 
• Exit terminal / Exit SSH 
• # bye bye ghost :(
Un CMS full NodeJS 
Nécessite d’être démarré en tant que service.
Ok sans serveur dédié c’est compliqué 
Et pour déclarer un domaine il faudra déclarer Nginx 
en tant que reverse proxy
Je le met où mon Node ? 
• https://www.nodejitsu.com/ 
• ttps://www.heroku.com/ 
• https://modulus.io/ 
• http://nodejs-cloud.com/fr/ 
• https://www.openshift.com/ 
• https://www.appfog.com/ 
• DTC ?
#WTF 
Beaucoup d'hébergements spécifiques à Node, tels que Nodejitsu et Heroku 
ne sont "PAS" compatibles avec Ghost. Ils fonctionneront dans un premier 
temps, mais supprimeront des fichiers et toutes les images envoyées et votre 
base de données vont disparaître. Heroku supporte MySQL et il vous est 
possible de l'utiliser, mais vous perdrez quand même les images envoyées.
Ghost, utilise une base de données SQLite, 
et stock ses images le répertoire principal 
« content »
Avec NodeJitsu, la solution est de synchroniser 
tous les fichiers du repertoire « content » vers 
MongoDB - GridFS * 
https://github.com/nodejitsu/persistent-ghost 
* Utilitaires de stockage et lecture de fichiers dans la base de données
Bon c’est bien compliqué, alors que… 
aws.amazon.com
AWS Simple Calculator !
Hum.. chez Amazon 
Il y a des instances serveur « Ghost Ready »
It Works ! 
Ok ça fonctionne, et après ?
Et après, … 
Bon ok je vous ai menti, je préfère démarrer mes projets 
« from scratch », les CMS j’en ai marre !
Node + Express JS + Jade 
+ tous vos frameworks préférés.
Mon App From Scratch 
npm install -g express 
express Express_demo 
• app.js (le coeur de votre application) 
• Deux vues Jade (le layout et la vue index) 
• Un dossier public (pour les fichiers statiques : js, 
css, et les images) 
• Un dossier node_modules (c’est dans ce dossier 
que sont installés les modules) 
• Un dossier routes (afin de pouvoir lier les requêtes 
aux vues) 
• Le package.json (qui est toujours à la racine du 
projet, il permet entres autre de connaitre les 
dépendances de l’application)
Config port, views, engine 
www & app.js 
app.set('port', process.env.PORT || 3000) 
app.set('views', __dirname + ‘/views'); 
app.set('view engine', 'jade');
Jade Kézako ? 
• Un moteur de template inspiré par HAML 
• Donc un markup simplifié 
• Un suport natif des Include, Extends et des Block 
• Des Var, statements, loops, mixin
Et après, … 
Dans la vraie vie, je joue aux jeux vidéos, j’ai un Raspberry Pi ! 
Et j’aime le middleware, le hardware, la robotique, …
https://github.com/joe-zim-javascript-blog/ButlerBoss 
Minecraft Server Manager 
Contrôler vos serveurs Minecraft depuis une web app
https://github.com/jperkin/node-openzwave 
OpenZwave + NodeJS + Raspberry Pi 
Les ingrédients pour développer sa box domotique ?
https://github.com/tessel 
Pour vos objets connectés 
Un microcontrolleur NodeJS compatible !
https://github.com/rwaldron/johnny-five 
J’adoooore les robots ! 
Du JS + des écrous = Mon NodeBot
… 
Alors que faisons-nous ?
Pour vous je ne sais pas 
Mais moi, je vais concentrer mes efforts sur cette 
technologie qui couvre tous mes besoins, dans la vraie vie.
Merci :) 
…

NodeJs in real life

  • 1.
    NodeJS in reallife ! @wleloutre
  • 2.
    Qu’est-ce que lavraie vie ? concevoir des sites web ? des applications ?
  • 3.
    #Intro Mon expérienceavec Javascript, comme intégrateur web
  • 4.
    • Premiers pasavec notre ami à tous jQuery ! • Basculement vers une méthode « VanillaJS » • Création d’apps hybrides via Cordova • Apprentissage & Expérimentation des API HTML5 web storage, Offline web application, … • Utilisation des Nodes Modules pour mon Workflow (Grunt, Bower, Yeoman, …)
  • 5.
    Et après ?NodeJs ? Tout le monde me dit que c’est LA solution ultime en JS
  • 6.
    Encore un outilde dev… Il y en a vraiment trop, que faire ?
  • 7.
    De quoi ai-jebesoin ? Des meilleurs outils qu’il puisse exister ?
  • 8.
    Pour quel typede projet ? Software, middleware, Hardware ?
  • 9.
    Un peu toutça en même temps ! Comment suivre toutes ces technologies ?
  • 10.
    Je suis <multitâches> Il me faut une technologie qui couvre mes besoins dans la vraie vie !
  • 11.
    Quoi ? NodeJSest LA solution ? Pour travailler en front-back, sur tout type d’architecture…
  • 12.
    Moi perso montruc… C’est les CMS ! (enfin ça dépend hein !)
  • 13.
    Comment intégrer NodeJs Dans mon CMS préféré ?
  • 14.
    Mieux ! Etpourquoi pas un CMS Full JS propulsé par NodeJs ?
  • 15.
  • 16.
  • 17.
    Simple, léger, … Ok je prend ça pour mon blog perso !
  • 18.
    Une minute Enlocal ça va mais, NodeJs est-il compatible avec mon hébergement mutalisé ?
  • 19.
    • npm start • # ghost running • Exit terminal / Exit SSH • # bye bye ghost :(
  • 20.
    Un CMS fullNodeJS Nécessite d’être démarré en tant que service.
  • 21.
    Ok sans serveurdédié c’est compliqué Et pour déclarer un domaine il faudra déclarer Nginx en tant que reverse proxy
  • 22.
    Je le metoù mon Node ? • https://www.nodejitsu.com/ • ttps://www.heroku.com/ • https://modulus.io/ • http://nodejs-cloud.com/fr/ • https://www.openshift.com/ • https://www.appfog.com/ • DTC ?
  • 23.
    #WTF Beaucoup d'hébergementsspécifiques à Node, tels que Nodejitsu et Heroku ne sont "PAS" compatibles avec Ghost. Ils fonctionneront dans un premier temps, mais supprimeront des fichiers et toutes les images envoyées et votre base de données vont disparaître. Heroku supporte MySQL et il vous est possible de l'utiliser, mais vous perdrez quand même les images envoyées.
  • 24.
    Ghost, utilise unebase de données SQLite, et stock ses images le répertoire principal « content »
  • 25.
    Avec NodeJitsu, lasolution est de synchroniser tous les fichiers du repertoire « content » vers MongoDB - GridFS * https://github.com/nodejitsu/persistent-ghost * Utilitaires de stockage et lecture de fichiers dans la base de données
  • 26.
    Bon c’est biencompliqué, alors que… aws.amazon.com
  • 27.
  • 28.
    Hum.. chez Amazon Il y a des instances serveur « Ghost Ready »
  • 29.
    It Works ! Ok ça fonctionne, et après ?
  • 30.
    Et après, … Bon ok je vous ai menti, je préfère démarrer mes projets « from scratch », les CMS j’en ai marre !
  • 31.
    Node + ExpressJS + Jade + tous vos frameworks préférés.
  • 32.
    Mon App FromScratch npm install -g express express Express_demo • app.js (le coeur de votre application) • Deux vues Jade (le layout et la vue index) • Un dossier public (pour les fichiers statiques : js, css, et les images) • Un dossier node_modules (c’est dans ce dossier que sont installés les modules) • Un dossier routes (afin de pouvoir lier les requêtes aux vues) • Le package.json (qui est toujours à la racine du projet, il permet entres autre de connaitre les dépendances de l’application)
  • 33.
    Config port, views,engine www & app.js app.set('port', process.env.PORT || 3000) app.set('views', __dirname + ‘/views'); app.set('view engine', 'jade');
  • 34.
    Jade Kézako ? • Un moteur de template inspiré par HAML • Donc un markup simplifié • Un suport natif des Include, Extends et des Block • Des Var, statements, loops, mixin
  • 35.
    Et après, … Dans la vraie vie, je joue aux jeux vidéos, j’ai un Raspberry Pi ! Et j’aime le middleware, le hardware, la robotique, …
  • 36.
    https://github.com/joe-zim-javascript-blog/ButlerBoss Minecraft ServerManager Contrôler vos serveurs Minecraft depuis une web app
  • 37.
    https://github.com/jperkin/node-openzwave OpenZwave +NodeJS + Raspberry Pi Les ingrédients pour développer sa box domotique ?
  • 38.
    https://github.com/tessel Pour vosobjets connectés Un microcontrolleur NodeJS compatible !
  • 39.
    https://github.com/rwaldron/johnny-five J’adoooore lesrobots ! Du JS + des écrous = Mon NodeBot
  • 40.
    … Alors quefaisons-nous ?
  • 41.
    Pour vous jene sais pas Mais moi, je vais concentrer mes efforts sur cette technologie qui couvre tous mes besoins, dans la vraie vie.
  • 42.