我有两台服务器。一台服务器具有我需要从另一台服务器使用的所有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);
});
});
我该怎么做?
答案 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]'
]));
只需在第一台服务器上试用此代码即可。