Vercel Edge Function 反向代理的代码示范

19 min read

以下是一个基本的 Vercel Edge Function 反向代理代码示例:

const fetch = require('node-fetch');

module.exports = async function (req, res) {
  const url = req.query.url;
  if (!url) {
    return res.status(400).send('No URL provided');
  }

  try {
    const response = await fetch(url);
    const text = await response.text();
    res.status(response.status).send(text);
  } catch (err) {
    res.status(500).send(err.message);
  }
};

该函数会获取传入的 URL 并使用 fetch() 方法向该 URL 发起请求。如果请求成功,该函数将返回响应的状态码和文本响应。如果请求失败,则返回 500 错误并显示错误消息。可以使用以下方式将其部署到 Vercel:

  1. 在 Vercel 控制台中选择您要用的项目
  2. 转到“函数”选项卡并单击“添加函数”
  3. 选择“Edge Function”
  4. 将上面的代码粘贴到编辑器中
  5. 点击“部署”

现在,您可以通过向函数 URL 提供 url 参数来测试函数。例如:

https://your-function-url.vercel.app/api/proxy?url=https://www.google.com