2013-08-12 10 views
1

Я начинаю с Node.js, так как в соответствии с требованиями к проекту, я пытаюсь вызвать службу REST из Node.js, я получил информацию о том, как называть покой от this SO question , Вот код, чтобы сделать отдых вызов:Выполнение запроса REST от Node.js и отсылка ответа браузеру

var options = { 
host: url, 
port: 80, 
path: '/resource?id=foo&bar=baz', 
method: 'POST' 
}; 

http.request(options, function(res) { 
    console.log('STATUS: ' + res.statusCode); 
    console.log('HEADERS: ' + JSON.stringify(res.headers)); 
    res.setEncoding('utf8'); 
    res.on('data', function (chunk) { 
    console.log('BODY: ' + chunk); //I want to send this 'chunk' as a response to browser 
    }); 
}).end(); 

проблема, я хочу, чтобы отправить chunk в ответ на браузер, я попытался res.write(), но это бросает мне ошибку «метод записи не найден». Я смотрел в документах повсюду, но все, что они дают, это console.log. Может ли кто-нибудь сообщить мне, как я могу отправить эти данные в ответ на браузер?

+2

Downvoter: Добавьте пояснительный комментарий, чтобы я мог исправить, если «вы» считаете, что в этом есть неправильный вопрос. Как я ясно упомянул, что я начинаю, у вас должно быть смысл упомянуть о том, что не так в этом вопросе, прежде чем свалить. –

ответ

1

Обратный вызов к http.request является экземпляром IncomingMessage, который представляет собой Readable поток, который не имеет метода write. При запросе HTTP с http.request вы не можете отправить ответ. HTTP - это протокол, ориентированный на запрос-ответ-сообщение.

Как я могу отправить эти данные в ответ на браузер?

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

http.createServer(function(req, res) { 
    var data = getDataFromREST(function(data) { 
    res.write(data); 
    res.end(); 
    }); 

}); 
+0

Спасибо, это работает :) –

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