2016-02-04 4 views
1

У меня есть проблема с этой маленькой программой:node.js Ошибка: подключение ECONNREFUSED; ответ от сервера

var http = require("http"); 
var request = http.request({ 
    hostname: "localhost", 
    port: 8000, 
    path: "/", 
    method: "GET" 
}, function(response) { 
    var statusCode = response.statusCode; 
    var headers = response.headers; 
    var statusLine = "HTTP/" + response.httpVersion + " " +statusCode + " " + http.STATUS_CODES[statusCode]; 
    console.log(statusLine); 
    for (header in headers) { 
     console.log(header + ": " + headers[header]); 
    } 
    console.log(); 
    response.setEncoding("utf8"); 
    response.on("data", function(data) { 
     process.stdout.write(data); 
    }); 
    response.on("end", function() { 
     console.log(); 
    }); 
}); 

В результате в консоли заключается в следующем:

 
events.js:141 
     throw er; // Unhandled 'error' event 
    ^

Error: connect ECONNREFUSED 127.0.0.1:8000 
    at Object.exports._errnoException (util.js:870:11) 
    at exports._exceptionWithHostPort (util.js:893:20) 
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1063:14)

Я не понимаю, почему это происходит.

+0

Что вы хотите достичь с помощью кода? – gnerkus

+0

Это происходит потому, что он не мог подключиться к конечной точке - в этом случае 'http: // localhost: 8000' недоступен – charliebrownie

+0

Предполагается, что у вас что-то работает на localhost: 8000? Потому что это не похоже на то, что вы делаете прямо сейчас. – philnash

ответ

8

От вашего кода. Похоже, что ваш файл содержит код, который делает запрос на localhost (127.0.0.1:8000).

Проблема может быть, вы не создали сервер на локальном компьютере, который прослушивает порт 8000.

Для этого нужно настроить сервер на локальном хосте, который может служить запрос.

1) Создание server.js

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

app.get('/', function (req, res) { 
    res.send('Hello World!'); // This will serve your request to '/'. 
}); 

app.listen(8000, function() { 
    console.log('Example app listening on port 8080!'); 
}); 

2) Запуск server.js: узел server.js

3) Запустить файл, содержащий код, чтобы сделать запрос.

+1

NB. Как правило, процессы, выполняющиеся без привилегий root, не могут привязываться к портам ниже 1024. –

Смежные вопросы