node.js - 这个场景如何实现:调用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]。我不会知道数据来自第二个域链接。希望我解释了。
提前致谢
解决方案
您需要的是一个简单的代理服务器。有几个模块可以直接插入 express 作为中间件。
例如http-proxy-middleware允许你这样做:
app.use('/api', proxy({target: 'http://seconddomain.com', changeOrigin: true}));
将此行添加到您的firstdomain
服务器代码中,它将充当代理。
推荐阅读
- flutter - TextOverFlow 颤振
- git - 疑难解答:如何让 Git 在提交时使用 VS Code?
- python - 用于排除特定文本的正则表达式
- npm - 有没有办法在 webpack 浏览器扩展应用程序中打开文件
- android - Android Room.databaseBuilder().createFromFile() 静默失败
- java - 在 intellij 中生成 WSDL 时出错:ClassNotFoundException: org.apache.woden.WSDLException
- sql - 在存储过程中使用嵌套的 case、when 和 else 条件
- python - 如何检查命令 cv2.line 是否更改了 python opencv 中的图像
- scala - 无法重写递归调用:它不在尾部位置
- django - 部署到 Google App Engine / Cloud SDK 的 Django 应用上的静态文件位置