IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NodeJS Discussion :

Débuter avec Node


Sujet :

NodeJS

  1. #1
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut Débuter avec Node
    Bonjour,

    Je voudrais me former un peu à Node. Je viens de l'installer, sous Linux.
    Mais maintenant, je ne sais pas trop quoi faire...

    Comment tester ? Ou placer mes pages HTML ? Mes scripts serveurs ?

    Merci d'avance si vous pouviez me renseigner, svp.

    Très cordialement,

    ANDRE Ani
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

  2. #2
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut
    J'ai installé Node sous Linux, je l'ai télécharger depuis git, puis compilé. Ca semble fonctionner.

    J'ai créé un dossier dans le dossier node-master pour mon apli.

    J'ai installé aussi un package avec npm dans le dossier de mon "appli" de test. Dans le dossier, j'ai fais npm install package. Et maintenant, j'ai un dossier node-modules dans mon dossier appli, mais il y a un soucis semble-t-il avec le package. Je cherche simplement un package pour lire un flux RSS et l'afficher.

    Et je ne sais pas trop comment créer le fichier package.json pour qu'il soit reconnu pour mon projet.
    Comment faire, svp ?

    Merci d'avance.
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

  3. #3
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut
    J'avance un peu.
    J'ai testé ceci :
    http://aceontech.com/howto/nodejs/20...th-nodejs.html

    Et ça fonctionne. Maintenant, je voudrais avoir une page HTML / CSS pour présenter le résultat, et afficher les flux.
    Mais je ne sais pas du tout comment faire... Un petit coup de main svp ?

    Merci d'avance ;-)
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    as tu pris le temps de regarder les cours mis à disposition sur DVP
    http://javascript.developpez.com/cou...e_serveur#node

  5. #5
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut
    Oui, j'ai commencé à regarder un peu tout ça, mais j'avoue que je suis un peu perdu.
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

  6. #6
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut
    J'ai lu pas mal de doc, sur ce site ou pas, fais quelques tutos également. Sûr certains tutos, la page HTML est directement incluse dans les fichiers JS. C'est ça qui me "pose problème" et que j'ai du mal à comprendre. Il faut ajouter des routes ? Comment créer des pages HTML qui réagissent au code JS ? En partant par exemple d'un simple serveur faisant un hello world.
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

  7. #7
    Membre actif Avatar de John Blobsmith
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 198
    Points : 223
    Points
    223
    Par défaut
    Pour commencer tu peux installer express http://expressjs.com/ puis tu regarde comment ils font les routes.
    Tu peux utiliser node sans framework mais il n'y a aucun intérêt. C'est comme faire un site en php sans framework ni cms.... plus personne le fait....

  8. #8
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut
    Oui, j'ai commencé à regarder Express un peu.

    En fait, il y a tellement de frameworks et de packages, pour les templates ou autres. On m'a conseillé d'ailleurs Backbonejs, vais cherché aussi à voir ça.
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

  9. #9
    Membre actif Avatar de John Blobsmith
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 198
    Points : 223
    Points
    223
    Par défaut
    Si tu veux faire une appli one page alors au lieu de blackbone je te conseille angular car plus structure et plus facile d'utilisation.

  10. #10
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut
    Ok, merci du conseil.

    Je commence un peu mieux à comprendre comment ça fonctionne mais, j'suis pas encore au top lol

    Par exmple, une fois que j'ai un serveur Node qui tourne et écoute sur un port, que j'ai 1 ou 2 pages dans les routes, je ne sais pas du tout comment faire pour, par exemple, utiliser ces packages et les exemples de code qu'ils donnent :

    https://github.com/ariya/phantomjs/b...s/rasterize.js
    Ou :
    https://github.com/danmactough/node-feedparser

    Comment utiliser leurs exemples, dans quels fichiers les mettres, et comment interagir avec mes pages html. Bref, y a du boulot !
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

  11. #11
    Membre actif Avatar de John Blobsmith
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 198
    Points : 223
    Points
    223
    Par défaut
    Ben prenons un exemple avec feedparser:

    - installation : Le module est téléchargé et mis dans le dossier node_modules (utilise --save pour écrire la dépendance dans le fichier package.json)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    npm install feedparser --save
    - utilisation: tu suis ce qui est marqué dans la section usage

    - import des modules dans ta page de travail: (ici on import feeparser et request...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var FeedParser = require('feedparser')
      , request = require('request');
    - après je te décris pas tout le code...

    - et enfin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    feedparser.on('readable', function() {
      // This is where the action is!
      var stream = this
        , meta = this.meta // **NOTE** the "meta" is always available in the context of the feedparser instance
        , item;
     
      while (item = stream.read()) {
        console.log(item);
      }
    });
    Dans le while il semble que tu récupère tes données, tu peux les mettre dans un tableau et les passer à une vue via la fonction render
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // exemple
    res.render('user', { name: 'Tobi' }, function(err, html) {
      // ...
    });
    tu met bien sur tout le code dans une section get qui est l'url d'entré de ton application:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    app.get('/index', function (req, res, next) {
     
     
    });

  12. #12
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    Personnellement pour aborder le langage j'ai commencé avec un tuto sur node.js et ça a été bien utile. Ensuite je ne sais pas si tu vas utiliser Express.js voir un framework encore au dessus de node.js(y'en a des vraiment simpa) pour te simplifier la vie et ne pas être aussi bas niveau que node.js seul.

    Comme framework j'utilise LoopBack, pour ce qui est génération des modèles et synchronisation avec la BDD je le trouve cool

  13. #13
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut
    Je vais regarder Backbone qu'on m'a conseillé, et aussi un peu Express (j'ai testé un outil qui cré le squelette d'une appli, ça semble pas mal pour débuter).
    BDD pas essayé encore, j'en suis pas là !

    Je voudrais bien déjà arriver à faire une ptite appli toute simple avec l'exemple de feedparser.
    Merci à John Blobsmith, j'essaye de comprendre son exemple, même si je patauge un peu.
    De plus, ces bouts de code sont à mettre dans le fichier coté server, comment cela agit sur la page html, je ne comprends pas trop ?
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

  14. #14
    Membre actif Avatar de John Blobsmith
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 198
    Points : 223
    Points
    223
    Par défaut
    Nous somme côté serveur, le code Javascript ici n'agit pas sur la page. Tu a sûrement un fichier app.js, pose le code dedans, tu fera du jolie code plus tard.

    Le render génère la page web et la vue est la page web à générer et a envoyer au navigateur. Le render envoi, en second paramètre, les données à la vue et la vue va positionner ces données dans la page. C'est une architecture mvc.

  15. #15
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut
    Oui, le joli code, c'est pas mon but pour le moment.

    L'architecture de mon appli de base, genre hello world, est comme ça :

    /monappli
    /views/
    /page1
    /page2
    app.js

    Donc, si je comprends bien, tout le code va dans app.js, ce qui génèrera ensuite la vue dans la page html ?

    Bon, je vais étudier cela, merci beaucoup des explications ;-)
    C'est un peu compliqué de débuter un framework, mais c'est vraiment intéressant !
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

  16. #16
    Membre actif Avatar de John Blobsmith
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 198
    Points : 223
    Points
    223
    Par défaut
    Page1 et page2 c'est des vues (fichiers) ou des dossiers ?

    Ton moteur de template c'est jade ?
    Le moteur de template c'est ce qui va te permettre de générer des pages html avec node.js.
    Voici un exemple d'ajout de moteur de template que tu dois trouver dans app.js.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    app.engine('jade', require('jade').__express);
    L'avantage du moteur de template c'est que dans tes fichiers de vue il n'y aura que du html avec quelques inclusions de variable du style {{mavariable}} pour les afficher.
    Si tu a jade de configurer je te conseil de changer, met plutot mustache.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    npm i hogan-middleware --save
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        app.set('view engine', 'mustache');
        app.engine('mustache', require('hogan-middleware').__express);
    Tu trouvera des exemples de vues simple ici -> https://www.npmjs.com/package/hogan-middleware

  17. #17
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut
    J'ai chambre.ejs, salon.ejs et index.ejs qui sont donc des fichiers situés dans le dossier views.

    Voilà mon code, mais ça ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    var express = require('express');
    var app = express();
     
    var FeedParser = require('feedparser')
    var request = require('request');
     
    var req = request('http://www.slate.fr/rss.xml')
    var feedparser = new FeedParser();
     
     
    app.get('/', function(req, res) {
     
    req.on('error', function (error) {
      // handle any request errors
    });
    req.on('response', function (res) {
      var stream = this;
     
      if (res.statusCode != 200) return this.emit('error', new Error('Bad status code'));
     
      stream.pipe(feedparser);
    });
     
     
    feedparser.on('error', function(error) {
      // always handle errors
    });
    feedparser.on('readable', function() {
      // This is where the action is!
      var stream = this
         meta = this.meta // **NOTE** the "meta" is always available in the context of the feedparser instance
         item;
     
      while (item = stream.read()) {
        res.render('/');
        console.log(item.title || item.description);
      }
    });
     
    app.get('/sous-sol', function(req, res) {
        res.setHeader('Content-Type', 'text/plain');
        res.end('Vous êtes dans la cave à vins, ces bouteilles sont à moi !');
    });
    app.get('/etage/salon', function(req, res) {
        res.render('salon.ejs', {etage: req.params.etagenum});
    });
     
    app.use(function(req, res, next){
        res.setHeader('Content-Type', 'text/plain');
        res.send(404, 'Page introuvable !');
    });
     
    });
     
    app.listen(8080);
    Je suppose que c'est la partie dans le while qui ne va pas, j'ai un peu de mal là...
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

  18. #18
    Membre actif Avatar de John Blobsmith
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 198
    Points : 223
    Points
    223
    Par défaut
    Oui effectivement, le render tu dois le mettre après le while et pas à l'intérieur.

    Un truc comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    var items = [];
    var item = {};
    while (item = stream.read()) {
        items.push(item);
        console.log(item.title || item.description);
      }
     
    res.render('metIciLeNomDeTaVue.ejs ', {'items' : items});

  19. #19
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut
    D'accord, merci de la précision.

    Pourquoi cela, ça correspond à quoi d'avoir 2 items ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var items = [];
    var item = {};
    Et j'ai un nouveau soucis, je n'ai plus accès à aucune page, j'ai un Cannot GET à chaque fois...

    J'ai du faire une bêtise en encapsulant le tout avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    app.get('/', function(req, res) {
    ...
    });
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

  20. #20
    Membre actif Avatar de John Blobsmith
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 198
    Points : 223
    Points
    223
    Par défaut
    Tu peux supprimer la variable "item", j'avais pas vu qu'elle était déja déclaré.
    De plus il me semble qu'il manque les virgules sur les lignes suivantes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     var stream = this
        , meta = this.meta // **NOTE** the "meta" is always available in the context of the feedparser instance
        , item;

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/03/2012, 17h09
  2. Réponses: 0
    Dernier message: 12/03/2012, 13h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo