目录

开发环境代理 API

优质
小牛编辑
131浏览
2023-12-01

当使用此模板与一个已经存在的后台配合开发时,一般需要在开发环境下访问后台的API。要做到这一点,我们可以使开发服务器和后台api并行运行(或远程运行),并让开发服务器代理的所有实际后台的API请求。

要配置代理规则,编辑config/index.js文件中的dev.proxyTable选项。开发服务器使用http代理中间件 来做代理,所以你应当瞅瞅它的文档来查看细节使用。不过这里有个简单的例子:

// config/index.js
module.exports = {
  // ...
  dev: {
    proxyTable: {
      // 代理所有以/api开始的请求到jsonplaceholder
      '/api': {
        target: 'http://jsonplaceholder.typicode.com',
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    }
  }
}

上面的例子会将/api/posts/1请求代理到http://jsonplaceholder.typicode.com/posts/1上。

匹配URL

除了静态的URL,您也可以使用glob模式匹配URL,例如/api/**上下文匹配。另外,你可以提供一个filter选项,可以自定义函数来确定请求是否应该被代理:

proxyTable: {
  '*': {
    target: 'http://jsonplaceholder.typicode.com',
    filter: function (pathname, req) {
      return pathname.match('^/api') && req.method === 'GET'
    }
  }
}