如何构建一个node.js代理服务器
在本文中,我们将创建一个Node.js代理服务器,将请求转发到不同的服务器或端点。
代理服务器: 代理服务器充当用户和他们想要访问的网站或API之间的中介。
为什么使用代理服务器?
在标准的方法中,客户端直接发送请求到API端点来获取所需数据。在这种情况下,Node.js代理将充当用户和API之间的中介。因此,用户向代理发出请求,然后将其转发到API端点。用户请求代理端点。
使用代理的好处包括:
- 允许和限制API的某些资源。
- 提高网络性能。
- 负载均衡。
示例: 让我们构建一个Node.js代理服务器。
先决条件: 确保你的设备上安装了以下应用程序。
- Node.js(请安装)。
- Visual Studio Code或其他代码编辑器。
- Postman用于测试API请求。
步骤: 我们将使用http-proxy-middleware框架创建一个发送请求到天气API – Open Weather Map的Node.js代理。
步骤1:初始化npm
创建一个新的项目目录并进入终端。键入以下命令初始化npm。
步骤2:安装所需的依赖项
我们需要在我们的项目中安装一些列出的软件包,如下所示:
- express: 这是一个node.js框架。
- http-proxy-middleware: 这是一个代理框架。
- dotenv: 加载环境变量。
- morgan: 记录请求。
通过运行以下命令来安装上述软件包:
步骤3:创建代理服务器
创建一个app.js文件,并编写代理服务器的代码。
首先,我们将导入安装的包到我们的项目中,并创建一个express服务器。
要使用开放天气地图API,您需要一个API密钥。请访问https://openweathermap.org/api登录或创建新帐户。点击API密钥,将其复制。
我们将创建一个 .env文件 来存储这个API密钥及其URL。在.env文件中添加以下代码
然后,我们将提及我们的端口、主机和API URL。
代理逻辑: 我们将创建一个代理中间件,并指定API终点和用户用于获取数据的新路径。默认情况下,我们将获取伦敦的天气。
API_SERVICE_URL将对用户隐藏,他们只能从localhost:3000/weather请求天气。在幕后,路径将重写为localhost:3000/
配置服务器
将以下代码添加到app.js文件中。
app.js
启动应用程序的步骤: 使用以下命令运行应用程序:
输出:
现在您已经准备好使用代理服务器了。
步骤4: 前往 Postman 发送请求。
我们将发送一个请求到 localhost:3000/weather,并根据 URL 查询获取伦敦的天气数据。用户甚至不知道确切的 API 端点。用户发送请求到代理服务器,代理服务器将其转发到 API 端点。
输出: