我需要将单个http请求重定向到多个服务器。
res.writeHead(301,{'Location':urlToRedirect1}); res.writeHead(301,{'Location':urlToRedirect2});
我无法使用上面的代码重定向。只有最后一个网址(urlToRedirect2)才能正确重定向。
是否可以使用res.writeHead重定向多个服务器。如果没有,我能否知道替代方案。
答案 0 :(得分:0)
查看request module,从上面的声音中你不需要重定向;类似下面的内容(注意我假设你收到一个表格帖子,请求的正文是你需要转发的。
function makeRequest(callback){
var request - require('request');
var dataToSend = req.body;
var url1 = 'http://server1/resource';
var url2 = 'http://server2/resource';
// Send to server 1
request.post(url1, dataToSend, function(err, response, body){
if(err) return callback(err);
// Make the second call
request.post(url2, dataToSend, function(err2, response2, body2){
if(err2) return callback(err2);
// Both calls are now complete
callback(null);
});
}
如果你需要进行两次以上的调用,下面的代码会变得混乱,所以你可能想要创建一个makeRequest函数来接收要调用的URL和数据作为参数并在循环中调用它