JavaScript 代理
最后修改于 2023 年 10 月 18 日
在本教程中,我们将展示如何在 JavaScript 中创建和使用代理。
一个 代理 服务器是一个服务器应用程序,充当请求资源的客户端和提供该资源的服务器之间的中介。
代理用于各种原因,包括授权、匿名化、负载均衡和日志记录。
JS 代理示例
在我们的例子中,我们使用 Express 框架和 http-proxy 模块。 我们将向 webcode.me 网站发送一个简单的 HTTP GET 请求,该请求将通过基于本地 Express 的 Web 应用程序进行代理。
$ npm install express http-proxy
我们安装这两个模块。
server.js
const express = require('express');
const httpProxy = require('http-proxy');
const proxy = httpProxy.createProxyServer({});
const app = express();
app.get('*', (req, res) => {
console.log('Request', req.method, req.url);
proxy.web(req, res, { target: `${req.protocol}://${req.hostname}` });
});
app.listen(3000, () => console.log('Application started on port 3000'));
这是一个简单的 Express 应用程序,它记录请求并将其发送到最终目标。
app.get('*', (req, res) => {
console.log('Request', req.method, req.url);
proxy.web(req, res, { target: `${req.protocol}://${req.hostname}` });
});
所有请求都将被转发到最终目的地。 我们将请求详细信息记录到控制台。
client.js
const axios = require('axios');
async function doGetRequest() {
const res = await axios.get('http://webcode.me', {
proxy: {
host: 'localhost',
port: 3000
}
});
console.log(res.data);
}
doGetRequest();
使用 Axios,我们创建一个 GET 请求到 http://webcode.me 网页。 它通过监听 localhost:3000 的代理发送。
$ node server.js Application started on port 3000
我们启动服务器应用程序。
$ node main.js
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="format.css">
<title>My html page</title>
</head>
<body>
<p>
Today is a beautiful day. We go swimming and fishing.
</p>
<p>
Hello there. How are you?
</p>
</body>
</html>
我们创建一个 GET 请求并接收一个响应。 服务器将 Request GET http://webcode.me/ 消息记录到控制台。
来源
在本文中,我们使用了 JavaScript 中的代理。