如何从第一台服务器向其他服务器发送数据并在第一台服务器中获取其他服

时间:2015-07-24 07:58:32

标签: node.js express proxy request server

我有两台服务器。一台服务器具有我需要从另一台服务器使用的所有api。

服务器1网址

  • http://127.0.0.1:9000/url(获取,发布,修补,删除)
  • http://127.0.0.1:9000/otherurl(获取,发布,修补,删除)
  • http://127.0.0.1:9000/anotherurl(获取,发布,修补,删除)

服务器2网址

  • http://127.0.0.1:4000/first(获取,发布,修补,删除)
  • http://127.0.0.1:4000/second(获取,发布,修补,删除)
  • http://127.0.0.1:4000/third(获取,发布,修补,删除)

我想向服务器2 发出请求,此服务器请求服务器1 服务器2 向我发送的响应服务器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);
    });
});

我该怎么做?

1 个答案:

答案 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]'
]));

只需在第一台服务器上试用此代码即可。