一尘不染

如何将请求转发到node.js中的其他端点

node.js

在我的情况下,我需要转发到另一个端点的请求。在我的机器中,有两个服务器php和node.js服务器。Node.js就像一个“中间人”,PHP服务器必须以相同的方式工作。

Node.js服务器代码

var express = require('express');
var fs = require('fs');
var path = require('path');
var http = require('http');
var https = require('https');
var app = express();

var HTTP_PORT = 3000;

// Create an HTTP service
http.createServer(app).listen(HTTP_PORT,function() {
  console.log('Listening HTTP on port ' + HTTP_PORT);
});


//endpoint for tracking
app.get('/track', function(req, res) {

  sendRequestToOtherEndPoint(req);

  processRequest(req);
  res.setHeader('Content-Type', 'application/json');
  res.send('Req OK');
});

function processRequest(req){
    console.log("request processed");
}

function sendRequestToOtherEndPoint(req){
    //magic here :)
}

当此服务器在端口3000中收到获取请求时,它将处理请求信息,并且必须将同一请求转发到另一个端点。

例如:

  1. 获取localhost:3000 / track?param1 = 1&param2 = 2
  2. 服务器进程获取请求
  3. 服务器将获取请求转发到localhost / final-endpoint?param1 = 1&param2 = 2

阅读 217

收藏
2020-07-07

共1个答案

一尘不染

根据您要执行的操作,可以向端点创建一个新请求:

//endpoint for tracking
app.get('/track', function(req, res) {

  req.get({url: 'http://end-point', headers: req.headers});

  processRequest(req);
  res.setHeader('Content-Type', 'application/json');
  res.send('Req OK');
});

更多信息:https//github.com/request/request

2020-07-07