簡體   English   中英

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

[英]How to res.send to a new URL in Node.js/Express?

給定對 URL X 的 GET 請求,您應該如何定義 res.send 以便它提供對完全獨立的 URL Y 的響應?

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

提前感謝並道歉對這個話題的無知!

您希望通過設置狀態代碼並提供位置標頭來重定向請求。 302表示臨時重定向,301表示永久重定向。

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

您只能響應請求的源,即客戶端。 沒有響應另一個“外部 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();
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM