当端口不面向公共端口时,如何为客户端应用程序(端口443)提供在同一服务器上使用REST API(端口9000)的能力?

时间:2016-06-23 18:06:44

标签: angularjs node.js rest express

我正在使用express和ui-router在节点上运行一个角度(1.5+)应用程序,我想将此应用程序连接到运行在同一服务器上但不是公共端口的端口上的REST API (9000)。

如何使用服务器端逻辑配置我的角度应用程序并表达服务器以使用端口9000上的REST API?

我想在端口9000上点击我的REST API的示例路由和参数是https://example.com/item/123

1 个答案:

答案 0 :(得分:1)

通常我使用Express Http Proxy来解决这个问题。它非常易于配置。

示例代码为:

var proxy = require('express-http-proxy');

// app is your express based Web application in port 443
var app = require('express')();

app.use('/item', proxy('localhost:9000', {
    forwardPath: function(req, res) {
        return require('url').parse(req.url).path;
    }
}));

使用此中间件,您可以在执行对私有API的请求之前和之后提供对请求的自定义处理。阅读文档以获取更多示例。