Partage
  • Partager sur Facebook
  • Partager sur Twitter

nodejs, bloquer sur la lecture d'une image

    22 avril 2017 à 11:40:08

    Bonjour,

    je souhaite testé "la mise en production" d'un serveur nodejs avec apache2

    j'ai installé pm2 et le proxy, et mis un message test ok.

    tout fonctionne avec ce script:

    var http = require('http');
    var path = require('path');
    var express = require('express');
    var app = express();
    app.use(express.static(__dirname ));
    console.log(__dirname);
    
    var server = http.createServer(function(req, res) {
      res.writeHead(200);
      res.end('<h1>test ok!</h1>');
    });
    
    
    server.listen(3000); // Démarre le serveur
    
    console.log("j'ecoute sur 3000");
    


    je vais sur test.fr sur mon navigateur (en mettant le fichier host test.fr ...), et la la page s'affiche correctement,

    maintenant je tente de mettre une imge que j'ai mis pour le moment à la racine de mon site (/var/www/logo.jpg);

    et la cela ne fonctionne pas l'image ne se charge pas:

    var http = require('http');
    var path = require('path');
    var express = require('express');
    var app = express();
    app.use(express.static(__dirname ));
    console.log(__dirname);
    
    var server = http.createServer(function(req, res) {
      res.writeHead(200);
      res.end('<img src="./logo.jpg">');
    });
    
    
    server.listen(3000); // Démarre le serveur
    
    console.log("j'ecoute sur 3000");
    


    je suis aller directement avec chrome sur test.fr/logo.jpg, can't be displayed because containt erreur.

    la console.log (__dirname) m'affiche:

    /var/www/ 

    sinon mon image
    /var/www/logo.jpg
    mon fichier
    /var/www/index.js

    quel est l'éciture correcte ? (j'ai mis un chmod 777 sur logo.jpg au cas où ...

    merci de vos réponses

    -
    Edité par keo 22 avril 2017 à 11:41:19

    • Partager sur Facebook
    • Partager sur Twitter
    projet de création domotique avec beaglebone avec nodejs
      22 avril 2017 à 12:36:29

      Hello

      Déjà un premier souci est que tu créé une app Express :

      var app = express();
      app.use(express.static(__dirname ));
      

      Mais tu n'en fais rien ! Tu crée ensuite un serveur classique avec http.createServer().

      Il te faudrait plutôt un app.listen(3000)

      Tente avec qqch comme ça :

      var http    = require('http');
      var path    = require('path');
      var express = require('express');
      var app     = express();
      
      app.use(express.static(__dirname));
      
      app.use(function(req, res) {
        res.status(200).type('html').send('<img src="logo.jpg">');
      });
       
      // Démarre le serveur
      app.listen(3000, function() {
        console.log("j'ecoute sur 3000");
      });
      

      -
      Edité par ninjavascript 22 avril 2017 à 12:41:49

      • Partager sur Facebook
      • Partager sur Twitter
        22 avril 2017 à 20:16:33

        merci de ta réponse,

        il faut que je gère la gestion de lecture des fichiers, c'est pour cela que cela fonctionne pas.

        je vais étudier ça de plus près, merci d'avoir répondu( j'ai testé mais appareement pas de lecture du fichier images...)

        • Partager sur Facebook
        • Partager sur Twitter
        projet de création domotique avec beaglebone avec nodejs
          22 avril 2017 à 21:21:06

          Ton application renvoie toujours le même contenu, peu importe ce qu'on lui demande. Tu pourrais très bien demander la page "toto", qu'elle te renverrait quand même "test ok".

          Utilise plutôt express avec sa fonctionnalité static.

          • Partager sur Facebook
          • Partager sur Twitter
          Développeur Front-End freelance disponible pour contrats ! En guerre contre l'utilisation abusive de jQuery.

          nodejs, bloquer sur la lecture d'une image

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown