Подтвердить что ты не робот

Node.js server.address(). address возвращает::

Если я правильно помню, он отображал "localhost" несколько дней назад. Я не уверен, что изменилось, что сделало server.address(). Address return double colons (::) вместо этого. Я читаю здесь, что он возвращает адрес IPv6 (::), если он доступен, но отключен на моем ПК. https://nodejs.org/api/http.html#http_server_listen_port_hostname_backlog_callback

4b9b3361

Ответ 1

Как говорят документы,

Начните принимать соединения на указанный порт и имя хоста. Если имя хоста опущено, сервер будет принимать подключения по любому адресу IPv6 (: :), если IPv6 доступен, или по любому адресу IPv4 (0.0.0.0) в противном случае. Нулевое значение порта будет назначать случайный порт.

Таким образом, следующий код будет напечатан 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)
});

Но если вы добавите явное имя хоста:

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

Будет напечатано то, что вы хотите увидеть: running at http://127.0.0.1:3456

Также вы можете использовать некоторую библиотеку IP, как указано в этом ответе.

С наилучшими пожеланиями, Александр

Ответ 2

Причина, по которой он выбирает адрес IPV6, возможно, в том, что какой-то другой процесс использует порт IPV4 № 3456. Иногда это происходит из-за автоматических обновлений, когда устанавливаются новые процессы.