web-dev-qa-db-fra.com

Node.js server.address (). Address renvoie ::

Si je me souviens bien, il y avait quelques jours pour afficher "localhost". Je ne suis pas sûr de ce qui a changé la valeur de server.address (). J'ai lu ici qu'il renvoie une adresse IPv6 (: :) si elle est disponible mais désactivée sur mon PC. https://nodejs.org/api/http.html#http_server_listen_port_hostname_backlog_callback

24
Jake

Comme le disent les docs,

Commencez à accepter les connexions sur le port et le nom d'hôte spécifiés. Si le nom d'hôte est omis, le serveur acceptera les connexions sur n'importe quelle adresse IPv6 (: :) lorsque IPv6 est disponible, ou toute adresse IPv4 (0.0.0.0) sinon. Une valeur de port de zéro affectera un port aléatoire.

Ainsi, le code suivant afficherait running at http://:::3456:

var express      = require('express');
var app          = express();
var server = app.listen(3456, function () {
    var Host = server.address().address;
    var port = server.address().port;
    console.log('running at http://' + Host + ':' + port)
});

Mais si vous ajoutez un nom d'hôte explicite:

var server = app.listen(3456, "127.0.0.1", function () {

Il imprimerait ce que vous voulez voir: running at http://127.0.0.1:3456

Aussi, vous voudrez peut-être utiliser certaines bibliothèques IP comme indiqué dans cette réponse

Cordialement, Alexander

56