2015-05-15 2 views
2

Я пытаюсь создать конечную точку/заказ .... где можно заказать запрос POST.Ошибка Node.Js - прослушиватель должен быть функцией

var http = require('http'); 

var options = { 
    hostname: '127.0.0.1' 
    ,port: '8080' 
    ,path: '/order' 
    ,method: 'GET' 
    ,headers: { 'Content-Type': 'application/json' } 
}; 

var s = http.createServer(options, function(req,res) { 

    res.on('data', function(){ 
     // Success message for receiving request. // 
     console.log("We have received your request successfully."); 
    }); 
}).listen(8080, '127.0.0.1'); // I understand that options object has already defined this. 

req.on('error', function(e){ 
    console.log("There is a problem with the request:\n" + e.message); 
}); 

req.end(); 

Я получаю сообщение об ошибке «слушатель должен быть функцией» .... при попытке запустить его из командной строки - «узел sample.js»

Я хочу, чтобы иметь возможность запускать эту услугу и закручивается в него. Может ли кто-то доказательство прочитать мой код и дать мне некоторые основные указания о том, где я ошибаюсь? и как я могу улучшить свой код.

+0

Если у вас есть новый вопрос, не обновлять этот вопрос. Отправьте новый вопрос. – Trott

+0

'req' - строка и строки не имеют' .on() 'method – slebetman

+0

@Trott: обновленный код в порядке, так как обновленная ошибка также появляется в исходном коде. Единственный ответ на этот вопрос при обновлении кода не касался этой ошибки. – slebetman

ответ

3

http.createServer() не принимает объект options в качестве параметра. Его единственным параметром является слушатель, который должен быть функцией, а не объектом.

Вот очень простой пример того, как это работает:

var http = require('http'); 

// Create an HTTP server 
var srv = http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('okay'); 
}); 

srv.listen(8080, '127.0.0.1'); 
+0

Должен ли я использовать 'var server = http.request (options, function (res) { res.setEncoding (' utf8 ');' вместо? – Philo

+1

'http.request()' отправляет запрос. Другими словами, это клиент, а не сервер. Итак, если вы пытаетесь создать клиент: да. Если вы пытаетесь создать сервер: нет. – Trott

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