开发环境代理api

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

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

  1. // config/index.js
  2. module.exports = {
  3. // ...
  4. dev: {
  5. proxyTable: {
  6. // 代理所有以/api开始的请求到jsonplaceholder
  7. '/api': {
  8. target: 'http://jsonplaceholder.typicode.com',
  9. changeOrigin: true,
  10. pathRewrite: {
  11. '^/api': ''
  12. }
  13. }
  14. }
  15. }
  16. }

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

匹配URL

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

  1. proxyTable: {
  2. '*': {
  3. target: 'http://jsonplaceholder.typicode.com',
  4. filter: function (pathname, req) {
  5. return pathname.match('^/api') && req.method === 'GET'
  6. }
  7. }
  8. }