2015-07-24 2 views
1

У меня есть два сервера. Один сервер имеет все api, что мне нужно использовать с другого сервера.Как отправить данные с первого сервера на другой и получить ответ другого сервера на первом сервере?

Сервер 1 URLs

  • http://127.0.0.1:9000/url (получить, пост, патч, удаление)
  • http://127.0.0.1:9000/otherurl (получить, пост, патч, удаление)
  • http://127.0.0.1:9000/anotherurl (получить, пост, патч, удалить)

сервер 2 URLs

  • http://127.0.0.1:4000/first (получить, пост, патч, удаление)
  • http://127.0.0.1:4000/second (получить, пост, патч, удаление)
  • http://127.0.0.1:4000/third (получить, пост, патч, удалить)

Я хочу сделать запрос к серверу 2, этот сервер сделать запрос сервер 1 и сервер 2 пришлите мне ответ от server 1. Я хочу использовать request lib и передавать данные через трубы.

Пример (псевдокод)

'use strict'; 

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

app.post('/first', function(req, res, next) { 
    request({ 
     baseUrl: 'http://127.0.0.1:9000/', 
     url: 'url', 
     method: 'post', 
     data: {/* something like req.pipe() */} 
    }, function(err, otherRes) { 
     res.writeHead(otherRes.statusCode, otherRes.headers); 
     otherRes.pipe(res); 
    }); 
}); 

Как я могу это сделать?

+0

Вы решили эту проблему? –

ответ

0

Я думаю, вы можете использовать это промежуточное программное обеспечение connect-modrewrite.

app.use(modRewrite([ 
'http://127.0.0.1:4000/first http://127.0.0.1:9000/url [P]', 
'http://127.0.0.1:4000/second http://127.0.0.1:9000/otherurl [P]', 
'http://127.0.0.1:4000/third http://127.0.0.1:9000/anotherurl [P]' 
])); 

Просто попробуйте этот код в вашем первом сегменте.

+0

Нет, мне нужно использовать 'request lib' –

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