如何实现此方案:在serverA上调用api自动转到serverB并运行请求并将响应返回给serverA

时间:2018-10-29 08:01:35

标签: node.js http express server

我正在将NodeJS和ExpressJS一起用于我的应用程序。我也写了一些API。我的本地服务器在端口3000上运行。

我将在某些特定位置调用我的API,例如: http://firstdomain.com/api/[apiname],因此我只需要访问此内容。

当我将其称为http://firstdomain.com/api/[apiname]时,它应该自动转到http://seconddomain.com/api/[apiname]并获取结果并发送回http://firstdomain.com/api/[apiname]

因此,作为一个人,我只会打电话给http://firstdomain.com/api/[apiname],实际上它将转到http://seconddomain.com/api/[apiname]以获取数据并在http://firstdomain.com/api/[apiname]上返回给我。我不会知道数据来自第二个域链接。希望我能解释。

预先感谢

1 个答案:

答案 0 :(得分:0)

您需要的是一个简单的代理服务器。有几个模块可以直接插入到中间件Express中。

例如http-proxy-middleware允许您执行以下操作:

List<String> dataSource = new ArrayList<String>();


RecyclerView.LayoutParams lp = new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
    recyclerView.setLayoutParams(lp);


    GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 4, GridLayoutManager.VERTICAL, false);
    setContentView(recyclerView);
    recyclerView.setAdapter(new TextRecyclerAdapter(dataSource));
    recyclerView.setLayoutManager(gridLayoutManager);

将此行添加到您的app.use('/api', proxy({target: 'http://seconddomain.com', changeOrigin: true})); 服务器代码中,它将充当代理。