首页 > 解决方案 > 这个场景如何实现:调用serverA上的api自动去serverB运行请求,返回response给serverA

问题描述

我在我的应用程序中使用 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]。我不会知道数据来自第二个域链接。希望我解释了。

提前致谢

标签: node.jshttpexpressserver

解决方案


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

例如http-proxy-middleware允许你这样做:

app.use('/api', proxy({target: 'http://seconddomain.com', changeOrigin: true}));

将此行添加到您的firstdomain服务器代码中,它将充当代理。


推荐阅读