如何重新发送到 Node.js/Express 中的新 URL?

Mat*_*yle 5 node.js express

给定对 URL X 的 GET 请求,您应该如何定义 res.send 以便它提供对完全独立的 URL Y 的响应?

IE

app.get('/', function (req, res) {
    res.send to a new URL external of the app ('Success')
});
Run Code Online (Sandbox Code Playgroud)

提前感谢并道歉对这个话题的无知!

小智 10

您希望通过设置状态代码并提供位置标头来重定向请求。302表示临时重定向,301表示永久重定向。

app.get('/', function (req, res) {
  res.statusCode = 302;
  res.setHeader("Location", "http://www.url.com/page");
  res.end();
});
Run Code Online (Sandbox Code Playgroud)


roc*_*cer 4

您只能将响应发送到请求源,即客户端。不存在向另一个“external-url”(或另一个服务器)发送响应的情况。
但是,您可以向另一台服务器发出请求,等待其响应,然后响应我们的客户端。

app.get('/', (req, res) => {
    
    var requestOptions = {
        hostname: 'serverB.com', // url or ip address
        port: 8080, // default to 80 if not provided
        path: '/take-request',
        method: 'POST' // HTTP Method
    };

    var externalRequest = http.request(requestOptions, (externalResponse) => {
        
        // ServerB done responding
        externalResponse.on('end', () => {
            
            // Response to client
            res.end('data was send to serverB');
        });
    });
    
    // Free to send anthing to serverB
    externalRequest.write(req.data);
    externalRequest.end();
});
Run Code Online (Sandbox Code Playgroud)