2 votes

apprentissage de node express, pourquoi la console n'affiche pas 'localhost' ?

J'apprends à utiliser express et node en général et je me rends compte que je pourrais manquer de nombreuses connaissances fondamentales. Voici le code pour démarrer un serveur pour servir des fichiers statiques, et si je comprends bien, la console doit afficher l'adresse du serveur et le numéro de port au démarrage.

var express = require('express');
var app = express();

app.use(express.static('resources'));
app.use(express.static(__dirname));

app.get('/', function (req, res) {
   res.sendFile( __dirname + "/" + "index.html" );
})

var server = app.listen(3000, function () {

  var host = server.address().address
  var port = server.address().port

  console.log("Server listening at http://%s:%s", host, port)

})

Je m'attends à voir le message "Server listening at http://localhost:3000 "mais à la place j'obtiens : ' Serveur écoutant à http://:::3000 '

Quelqu'un peut-il m'expliquer ce que cela signifie ? Merci

2voto

Patrick Roberts Points 405

Voir la documentation sur net.Server::address() .

Il ne dit probablement pas localhost parce que vous n'avez pas spécifié l'adresse que vous écoutez.

Par défaut, il n'y a pas d'adresse spécifique, car il accepte les demandes entrantes sur le port, quelle que soit l'adresse à laquelle elles ont été envoyées.

Voici quelques exemples d'adresses qu'il pourrait accepter localhost , 127.0.0.1 , 192.168.1.72 ou si vous faites transiter votre serveur par votre réseau, il peut s'agir de votre adresse IP globale. Si vous spécifiez explicitement une adresse, elle rejettera les requêtes entrantes provenant de toutes ces autres adresses.

-2voto

Bhuvanesh Tomar Points 16

Cela ressemble aux dangers de l'exécution asynchrone du code. Vous définissez l'hôte et le port et les appelez immédiatement dans la déclaration de log de la console. NodeJS exécute l'instruction log avant l'initialisation. Essayez d'imprimer la déclaration de log en dehors de la fonction app.listen.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X